在hibernate中,有很多关于set cascade to“all,delete”等的信息, 但是我想知道set cascade对“none”的影响
现在我有一个类Parent,它是子类Child,
class Parent{
List<Child> childs;
....}
并在文件parent.hbm.xml中(我省略了其他内容)
<class name="Parent" table="parent" >
<bag name="childs" lazy="false" table="parenthaschildsTable" cascade="none">
<key>
<column name="parentId" not-null="true"/>
</key>
<one-to-many class="Child">
<column name="childId" not-null="true"/>
</one-to-many>
</bag>
保存父级时,我不想级联更新他的孩子,所以我设置了cascade="none"
。
我的问题是:
我设置的级联是“none”,如果我将一个子#1添加到父级,那么我保存父级,可以将hibernate插入一个新记录到表parenthaschildsTable,但不能级联Child吗?
答案 0 :(得分:3)
我设置的级联是“none”,如果我将一个子#1添加到父级,那么我保存父级,可以将hibernate插入一个新记录到表parenthaschildsTable,但不能级联Child吗?
您更改了父级(通过修改集合),因此Hibernate将在连接表中插入一条记录以反映保存时(何时应该发生?)。当然,只有当孩子已经分配了标识符值时,这才会成功。但你为什么不尝试呢?