2012-02-10 20 views
1

HI我有一個由可嵌入對象組成的PK。Hibernate通過嵌入式主鍵級聯刪除

它做出來的兩個約束

@ManyToOne SpecificType1規範; @ManyToOne SpecificType1規格;

所以基本上是兩個對象之間的映射表。

我想級聯刪除基於實現此可嵌入PK的對象。

我在SpecificType1上添加了@Cascade({CascadeType.DELETE,CascadeType.DELETE_ORPHAN}),但它不會執行級聯。

回答

1

這個級聯沒有意義。

您有許多Foo實體具有相同的SpecificType1(ManyToOne)。而且您正在配置Hibernate,因此如果您刪除Foo實例之一,它還會刪除SpecificType1。這顯然會將所有其他Foo實體關聯到一個未存在的SpecificType1,這會破壞外鍵約束並導致回滾。