象这种情况怎么解决呢?
hibernate宣称的是让用户不必关心底层数据,把心思放在业务逻辑如果没有办法,我只有把中间的外键给去掉了

解决方案 »

  1.   

    如果你要用外键关联的话,无论你是不是用hibernate,你都要保证外键对应的数据是存在的。这是数据库决定的,不是hibernate的错。
    简单的办法就是不要使用外键,一切都自己控制。
      

  2.   

    但是问题不一样啊,比如说我的外键的storeid是1,直接用sql语句的话
    设置service的storeid为1就可以了hibernate在处理一对多关连的问题的时候,肯定有策略来约束"一"(UserInfo)这一方的.
    因为我操作的是"多"(Service)这一方,
    "一"(UserInfo)"那一方做为参考,没有必要构造一个完整的对象
    而本身hibernate以ID为标识,按道理来说,我把"一"(UserInfo)这一端只需要设置ID就可以了但是在插入的时候,会去检查"一"(UserInfo)的完整性,自然就报错了,有没有办法去屏蔽不让它检查?
      

  3.   

    把service的inverse设为true也就是把维护关联的工作交给其他类,并且取消out-join
      

  4.   

    还需要把UserInfo的storid的many-to-one属性save-update去掉吗?
      

  5.   

    service的inverse设为true?好像不太好吧,这样效率没有service的inverse设为false高.问一句:没有商店和用户你那卖出的东西哪来得?我觉得逻辑有问题啊
      

  6.   

    我一般是把需要级联操作的表相关连,就是many端有<many-to-one>,one端有<set>
    另外两个表如果关联不多或纯粹是一个外键的对应关系,那我会把one端的<set>去掉,只留many端.
    以上纯属个人想法