Система Я работаю над имеет объект домена с именем Order, который наследует от AbstractPersistentObject. Теперь мне нужно добавить еще один объект домена с именем ExternalOrder который имеет некоторые свойства заказа, но не все. Я бы хотел, чтобы эти два объекта обрабатывались полиморфически в определенных местах. Поэтому я думаю о реализации наследования.Hibernate Наследование Отображение и атрибутов Override
Я создал AbstractOrder, который в настоящее время проходит AbstractPersistentObject и перемещать общие свойства AbstractOrder. Order и ExternalOrder теперь расширяют AbstractOrder.
Поскольку в таблице заказов уже есть много данных в базе данных, я бы предпочел не делать слишком много изменений в схеме.
Если я опустил InheritanceType.SINGLE_TABLE, какая стратегия наследования была бы лучше для меня? Я должен упомянуть, что я должен использовать OnetoMany, присоединиться хотя бы к одному объекту домена. Объект домена будет ссылаться на AbstractOrder, а Hibernate будет определять во время выполнения конкретный подкласс для этого AbstractOrder.
AbstractPersistentObject имеет @Id и @GeneratedValue (strategy = GenerationType.IDENTITY) для идентификатора свойства. Есть ли способ переопределить это, когда я реализую наследование? Насколько я понимаю, GenerationType.IDENTITY не будет работать для определенных вариантов наследования, и я не уверен, как это переопределить. Я просмотрел @AttributeOverride, но я думаю, что это полезно, когда вы хотите переопределить некоторые значения @Column.