Especificando sequência distinta por tabela no Hibernate nas subclasses
Existe uma maneira de especificar seqüências distintas para cada tabela no Hibernate, se o ID estiver definido em uma superclasse mapeada?
Todas as entidades em nosso aplicativo estendem uma superclasse chamadaDataObject
como isso:
@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 { ... }
Isso faz com que todas as entidades usem uma sequência compartilhada, o padrãohibernate_sequence
.
O que eu gostaria de fazer é usar uma sequência separada para cada entidade, por exemploentity_a_sequence
eentity_b_sequence
no exemplo acima. Se o ID fosse especificado nas subclasses, eu poderia usar o@SequenceGenerator
anotação para especificar uma sequência para cada entidade, mas nesse caso o ID está na superclasse. Dado que o ID está na superclasse, existe uma maneira de usar uma sequência separada para cada entidade - e se sim, como?
(Estamos usando o PostgreSQL 8.3, caso isso seja relevante)