这种情况该如何解决

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中该如何配置?
...全文
151 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
你说的映射指什么?类与表的映射?一个类映射两个表吗?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧