在子类上的休眠中为每个表指定不同的序列
2022-09-01 12:45:51
有没有办法为Hibernate中的每个表指定不同的序列,如果ID是在映射的超类上定义的?
我们应用程序中的所有实体都扩展了一个名为这样的超类: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
我想做的是为每个实体使用一个单独的序列,例如和上面的示例。如果在子类上指定了 ID,那么我可以使用注释为每个实体指定一个序列,但在本例中,ID 位于超类上。鉴于 ID 位于超类中,有没有办法为每个实体使用单独的序列 — 如果是这样,如何?entity_a_sequence
entity_b_sequence
@SequenceGenerator
(我们使用的是PostgreSQL 8.3,以防万一相关)