Указание отдельной последовательности для каждой таблицы в Hibernate в подклассах

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

23
задан gutch 30 December 2010 в 07:25
поделиться