我工作的系统中有一个名为订购从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值时才有用。