0
我已經採用了hibernate的table-per-class-hierarchy,概述爲here。如何更新hibernate的table-per-class-hierarchy策略中的具體類?
我有一個簡單的1層層次結構,父級包含許多屬性,子(ren)包含更多相同的屬性。這個對象也有關係。例如:
@Table(uniqueConstraints = { @UniqueConstraint(columnNames = {"name"}) })
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING, length = 1)
abstract class X {
...
Long id;
String name;
List<A> a;
...
}
class Y extends X {
...
String getType() { return "Y"; }
...
}
class Z extends X {
...
String getType() { return "Z"; }
...
}
class A {}
我需要做的是將Y的持久實例「更新」爲保持完整性的Z實例。如果我發出刪除Y;創建Z,我得到的唯一約束違規(刪除跟隨由於Hibernate的排序創建/更新),但沒有發現任何策略,以「更新」 Y到Z
我最終改變了層次結構,並使用子類型枚舉來促進具體類之間的差異。 –