inverse和cascade的起作用的先后顺序是什么 ?

解决方案 »

  1.   

    这两个属性本身互不影响,但起的作用有些类似,都能引发对关系表的更新。
    inverse只对set+one-to-many(或many-to-many)有效,对many-to-one, one-to-one无效。cascade对关系标记都有效。inverse对集合对象整体起作用,cascade对集合对象中的一个一个元素起作用,如果集合为空,那么cascade不会引发关联操作。
      

  2.   

    他们之间没啥关系,一个是级联一个是是否维护关系,是互相协调,没有顺序一说cascade是否多关联的表进行一些操作
    inverse是否有该表来维护关系
      

  3.   

    一对多关系中 <Set> 中设置  inverse=false cascade=all-delete-orphan
    删除set 中的内容,执行 seesion.flush();
    更新操作第一步就是更新子表的键值为空(是在更新主表和子表的关联关系),然后,就报键值不能为空的错误 。按照你的理论应该是先cascade,就是做级联删除,系统应该先删除失去关联关系的子表记录。这个和实际情况不相符。
    从这个现象来看,应该是 先inverse 后 cascade.
    不知道我的理解对不。
      

  4.   

    作用域集合整体因该是inverse先,cascade是对于集合对象的某个元素,从内部看应该是cascade先起作用,不知道我这样说的对不..