【问题标题】:Hibernate: cascade question休眠:级联问题
【发布时间】:2010-08-27 02:58:39
【问题描述】:

在hibernate中有很多关于set cascade to "all, delete"等的信息, 但我想知道将级联设置为“无”的效果

现在我有一个类 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"。 我的问题是: 我将级联设置为“无”,如果我将一个child#1添加到父级,然后我保存父级,可以休眠向表parenthaschildsTable插入一条新记录,但不能级联Child?

【问题讨论】:

    标签: java hibernate cascade nhibernate-cascade


    【解决方案1】:

    我将级联设置为“无”,如果我将一个child#1添加到父级,然后我保存父级,可以休眠向表parenthaschildsTable插入一条新记录,但不能级联子级?

    您更改了父项(通过修改集合),因此 Hibernate 将在连接表中插入一条记录以在保存时反映该记录(其他情况何时发生?)。当然,只有当孩子已经分配了一个标识符值时,这才会成功。但是你为什么不实际尝试一下呢?

    【讨论】:

    • 好的,谢谢@Thivent,我已经试过了,结果父母的孩子添加成功了。
    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 2015-08-01
    • 2019-12-24
    • 2019-02-25
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多