总是感觉那些
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.
这样更新任意一个实体,它所关联的实体就自动更新了,不知道这样有没有什么弊端?
没有的话我就花大力气全部改成这样如何?求教!谢谢

解决方案 »

  1.   

     你可以不使用 关联映射, 比如 一个没有外键的表(只是没有去申明,但有那个字段)不级联 我觉得删除不方便, 查找你可以用CreatesqlQuery 自己来写sql语句, 删除自己来写 触发器这样我觉得 性能个方便更好.至于你说的问题,这样把广告实体 看作为(主表) one方sortA sortB 都是对应主表的,<many-to-one>你的方案一 只正确的!! 
      

  2.   

    在配置映射文件时
     * <one-to-many>和<mant-to-many>标签是用在<set>标签中的。
     * <many-to-one>和<one-to-one>标签是和<property>标签并列的。
      

  3.   

    楼上你好,我的sort和ad是实际上的一对一关系的
    我双向都是many-to-one对的吗?