谋求帮助,紧急
寻求帮助,紧急......
现在我这边遇到这样的一个问题
parent.hbm.xml 中
<class name= ”Parent">
<set name="resouceList" lazy="true" cascade="all,delete-orphan">
<key column="RT_TASK_ID" />
<one-to-many
class="Child"/>
</set>
在child.hbm.xml 中
<class name="Child">
<many-to-one name="routineTest" column="RT_TASK_ID" class="Parent" />
问题是这样的:
我现在在 parentSerice.update(parent)的时候,会长时间阻塞在resouceList的关联更新上。
(resouceList 非常大的一个数目)
但是网上资料如此说:
inverse对集合对象整体起作用,cascade对集合对象中的一个一个元素起作用,如果集合为空,那么cascade不会引发关联操作。
比如将集合对象置为null, school.setStudentSet(null)
inverse导致hibernate执行:udpate STUDENT set SCHOOL_ID=null where SCHOOL_ID=?
cascade则不会执行对STUDENT表的关联更新, 因为集合中没有元素。
我现在在parent 中也是lazy=true了,按理说resouceList 也是空了,为什么还关联更新呢?
奇怪的是我看打出的HSQL,并没关联更新的那些语句。
但是如果把cascade中的all 去掉在parentService.update 中长时间阻塞了。
哪位高手给解释下啊。谢谢。
我现在想要的就是这个时候不进行关联更新(注意是这个时候不关联更新,有的时候必须要关联更新)。
现在我这边遇到这样的一个问题
parent.hbm.xml 中
<class name= ”Parent">
<set name="resouceList" lazy="true" cascade="all,delete-orphan">
<key column="RT_TASK_ID" />
<one-to-many
class="Child"/>
</set>
在child.hbm.xml 中
<class name="Child">
<many-to-one name="routineTest" column="RT_TASK_ID" class="Parent" />
问题是这样的:
我现在在 parentSerice.update(parent)的时候,会长时间阻塞在resouceList的关联更新上。
(resouceList 非常大的一个数目)
但是网上资料如此说:
inverse对集合对象整体起作用,cascade对集合对象中的一个一个元素起作用,如果集合为空,那么cascade不会引发关联操作。
比如将集合对象置为null, school.setStudentSet(null)
inverse导致hibernate执行:udpate STUDENT set SCHOOL_ID=null where SCHOOL_ID=?
cascade则不会执行对STUDENT表的关联更新, 因为集合中没有元素。
我现在在parent 中也是lazy=true了,按理说resouceList 也是空了,为什么还关联更新呢?
奇怪的是我看打出的HSQL,并没关联更新的那些语句。
但是如果把cascade中的all 去掉在parentService.update 中长时间阻塞了。
哪位高手给解释下啊。谢谢。
我现在想要的就是这个时候不进行关联更新(注意是这个时候不关联更新,有的时候必须要关联更新)。