Есть ли способ указать отдельные последовательности для каждой таблицы в 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
, чтобы указать последовательность для каждого объекта, но в этом случае идентификатор находится в суперклассе.Учитывая, что ID находится в суперклассе, есть ли способ, которым я могу использовать отдельную последовательность для каждой сущности - и если да, то как?
(Мы используем PostgreSQL 8.3, в случае необходимости)