0
我有以下Hibernate映射和Java類結構:Hibernate不刪除主行時子被刪除
<class name="A" abstract="true" table="tableA" lazy="false">
<id name="id" type="long">
<generator class="native" />
</id>
<discriminator column="type" type="string" />
<!--common properties-->
<subclass name="B" abstract="true" >
<join table="tableB">
<key column="aId"/>
<!--subclass common properties-->
</join>
<subclass name="B1" discriminator-value="B1TYPE" >
<!--subclass properties-->
</subclass>
<subclass name="B2" discriminator-value="B2TYPE" >
<!--subclass properties-->
</subclass>
</subclass>
</class>
<class name="C" table="tableC">
<id name="id" type="long">
<generator class="native" />
</id>
<set name="items" cascade="all,delete-orphan">
<key column="id" not-null="true" />
<one-to-many class="A" />
</set>
</class>
和Java部分:
abstract class A
{
}
abstract class B extends A
{
}
class B1 extends B
{
}
class B2 extends B
{
}
class C
{
Set<A> items;
}
的問題是,有些時候情況從tableB
刪除行,但不會從tableA
刪除。可能的原因是什麼?
編輯:
當項目從class C
去除,C
存儲從它的倉儲類:
C.items.remove(B1);
CRepository.store(C);
您可以添加導致此問題的代碼? – Chaitanya 2014-09-10 11:59:05
從項目中刪除項目時出現問題。是否有可能從其他表的外鍵(限制)到tableA防止從tableA刪除?我認爲在這種情況下,hibernate不應該從tableB刪除行,對吧? – 2014-09-10 12:07:01