大家来讨论一下Hibernate的关联关系什么时候使用合适呢
总是感觉那些
one-to-many
one-to-one等等很难使用啊。
有时候想要级联更新的没更新,不想关联的却不小心关联上了,东西一多就忘了它们的对应关系了!
PS:附加一个问题
我现在有三个实体,分别是:
电影分类sortA
音乐分类sortB
和广告实体Ad
一个sortA对应一个Ad
一个sortB也对应一个Ad
方案一、
我用的方法是让sortA和sortB分别对Ad进行many-to-one映射,并且Ad也分别对她们两个进行many-to-one映射。
这样的话更新ad后sortA和sortB对应的Ad都不会自动更新,我这时在Ad更新的方法中写上每次更新完ad后再更新sort。这样让它们保持一致...
感觉很不恰当..但项目刚开始的时候就这么弄的,改起来麻烦了。
方案二、
让sortA和sortB分别对ad进行one-to-one映射,让ad分别对它们两个进行one-to-one映射,不设置任何一个constraind.
这样更新任意一个实体,它所关联的实体就自动更新了,不知道这样有没有什么弊端?
没有的话我就花大力气全部改成这样如何?
求教!谢谢
------解决方案-------------------- 你可以不使用 关联映射, 比如 一个没有外键的表(只是没有去申明,但有那个字段)
不级联 我觉得删除不方便, 查找你可以用CreatesqlQuery 自己来写sql语句, 删除自己来写 触发器
这样我觉得 性能个方便更好.
至于你说的问题,这样
把广告实体 看作为(主表) one方
sortA sortB 都是对应主表的,<many-to-one>
你的方案一 只正确的!!
------解决方案--------------------在配置映射文件时
* <one-to-many>和<mant-to-many>标签是用在<set>标签中的。
* <many-to-one>和<one-to-one>标签是和<property>标签并列的。