这种情况该如何解决

karderax 2010-09-29 08:37:09
create table A (
...
type char(1)
);

create table B (
...
);

create table C (
...
);

问题:
当A.type='1' 的时候,映射B表;
当A.type='2' 的时候,映射C表,
请问在hibernate中该如何配置?
...全文
85 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cnmb1 2010-09-30
如果lz硬要这么做的话,很简单。
hibernate什么都不用配,代码里写个适配器方法。伪代码如下:


A a = AManager.get(id); //得到A
if(a.type==Type.B){
B b = BManager.get(a.fk); //a.fk是一个数字,记录关联表B或C的主键id。
}else if(a.type==Type.C){
C c = Cmanager.get(a.fk);
}else{
.....
}


不知道楼主是不是这个意思。由于不是很明白,我只能这么写...,不知道lz能否明白我的意思。
  • 打赏
  • 举报
回复
youjianbo_han_87 2010-09-30
映射? 是关联的意思?

程序里面判断,模仿Hibernate关联,并不是非得用 Hibernate就好。。。
  • 打赏
  • 举报
回复
karderax 2010-09-30
居然没人解决,大跌眼镜
只好求助版主啦
  • 打赏
  • 举报
回复
karderax 2010-09-29
恩,就是根据元数据来判断到底该映射到哪个表
  • 打赏
  • 举报
回复
jlsf_zym 2010-09-29
B和C实现同一接口
  • 打赏
  • 举报
回复
kokobox 2010-09-29
你这个属于一表对多表,而且是根据元数据去判断而不是结构去判断。

直接映射的话应该不好处理。

建议还是执行sql去判断,或者分步读取吧。

  • 打赏
  • 举报
回复
水中影子 2010-09-29
不是很明白你的意思

hibernate 配置一对多?
  • 打赏
  • 举报
回复
huguang 2010-09-29
你说的映射指什么?类与表的映射?一个类映射两个表吗?
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-29 08:37
社区公告
暂无公告