Есть ли способ указать различные последовательности для каждой таблицы в 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, если это необходимо)