Есть ли способ указать отдельные последовательности для каждой таблицы в Hibernate, если идентификатор определен в сопоставленном суперклассе?
Все сущности в нашем приложении расширяют суперкласс с именем DataObject
, например это:
@MappedSuperclass
public abstract class DataObject implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id")
private int id;
}
@Entity
@Table(name = "entity_a")
public class EntityA extends DataObject { ... }
@Entity
@Table(name = "entity_b")
public class EntityB extends DataObject { ... }
Это заставляет все сущности использовать общую последовательность, стандартную hibernate_sequence
.
Я бы хотел использовать отдельную последовательность для каждой сущности, например entity_a_sequence
и entity_b_sequence
в примере выше. Если бы идентификатор был указан в подклассах, я мог бы использовать аннотацию @SequenceGenerator
, чтобы указать последовательность для каждого объекта, но в этом случае идентификатор находится в суперклассе. Учитывая, что идентификатор находится в суперклассе, могу ли я использовать отдельную последовательность для каждой сущности - и если да, то как?
(Мы используем PostgreSQL 8.3, в случае необходимости)