我工作的系統中有一個名爲訂購從AbstractPersistentObject繼承的域對象。現在我需要添加名爲ExternalOrder的另一個域對象,它具有Order的一些屬性,但不是全部。我希望這兩個對象在某些地方被處理爲polymorphically。因此我正在考慮實現繼承映射。Hibernate的繼承映射和屬性來覆蓋
我創建了一個AbstractOrder現在擴展AbstractPersistentObject和移動的共同屬性AbstractOrder。 Order和ExternalOrder現在擴展了AbstractOrder。
由於Order表在數據庫中已經有很多數據,所以我不希望對模式做太多的修改。
如果我省略InheritanceType.SINGLE_TABLE,哪種繼承策略對我更好?我應該提到,我必須在至少一個域對象中使用OnetoMany聯接。領域對象將引用AbstractOrder,Hibernate將在運行時決定AbstractOrder的具體子類。
AbstractPersistentObject具有屬性ID的@Id和@GeneratedValue(strategy = GenerationType.IDENTITY)。當我實現繼承時,有沒有辦法覆蓋這個?據我所知,GenerationType.IDENTITY不適用於某些繼承選擇,我不知道如何覆蓋它。我已經看過@AttributeOverride但我認爲它只有當你想覆蓋某些@Column值時纔有用。