相关疑难解决方法(0)

在子类的Hibernate中为每个表指定不同的序列

有没有办法为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 { ... }
Run Code Online (Sandbox Code Playgroud)

这会导致所有实体使用默认的共享序列hibernate_sequence.

我希望做的是使用一个单独的序列为每个实体,例如entity_a_sequenceentity_b_sequence上面的例子.如果在子类上指定了ID,那么我可以使用@SequenceGenerator注释为每个实体指定序列,但在这种情况下,ID在超类上.鉴于ID在超类中,是否有一种方法可以为每个实体使用单独的序列 - 如果是,那么如何?

(我们正在使用PostgreSQL 8.3,如果相关的话)

java postgresql hibernate sequence

23
推荐指数
3
解决办法
2万
查看次数

标签 统计

hibernate ×1

java ×1

postgresql ×1

sequence ×1