请教一个Hibernate关联映射的问题

yfdwl 2008-11-21 04:49:13
一般简单的关联比如:
<many-to-one name="A" class="ClassA">
<column name="Column1" not-null="true" />
</many-to-one>
就是通过字段Column1去关联ClassA这个类。

现在我想这样子:
Column1要根据Column2值的不同而去关联不同的类,比如:
当Column2=0时,关联ClassA
<many-to-one name="A" class="ClassA">
<column name="Column1" not-null="true" />
</many-to-one>
当Column2=1时,去关联ClassB
<many-to-one name="B" class="ClassB">
<column name="Column1" not-null="true" />
</many-to-one>
不知道能否实现?
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiyuzhongxin789 2008-11-21
  • 打赏
  • 举报
回复
可以两个都关联,lazy加载就可以了,程序里再处理....
Landor2004 2008-11-21
  • 打赏
  • 举报
回复
请充分利用hibernate的or映射机制,如果想用好hibernate那么必须要符合hibernate的一般要求来设计表和实体

所以支持一楼说的方法,尽量向or映射靠拢。
lihan6415151528 2008-11-21
  • 打赏
  • 举报
回复
lazy=false
然月枕流君 2008-11-21
  • 打赏
  • 举报
回复
兄弟,你是
你那是多对一,不是一对一;
你可要想到,你一那边的set可是有设<key column="多的一方的id字段" />,
如果你真的在程序中处理了,多的一方,要多数好多个user_id,person_id等等的字段,而且只要需要求稍微变化下,你就要在多一方表加一个字段,我敢保证你要是这么写,你项目经理不骂死你才怪!!
一的那边的set,都写死了,明白不~~

解决问题要看具体你的需求,如果只是从多的一方做文章的话,然后你还想变化,用继承映射!~
把一那边弄成继承映射,配置文件用多态,就没问题了;
fosjos 2008-11-21
  • 打赏
  • 举报
回复
可以两个都关联,lazy加载就可以了,程序里再处理

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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