2012-03-02 132 views
1

我的目標是EJB應該在實體生成表格時生成一個序列。我怎樣才能做到這一點?如何使用JPA創建PostgreSql序列?

我想過這個,但在那種情況下,我只使用現有的序列。我想要一個由JPA生成的序列。我認爲這是不可能的,或者是嗎?

@Entity 
@Table(name = "CUSTOMER") 
@SequenceGenerator(name = "sb_sequence",sequenceName = "sb_sequence", initialValue=5420) 
public class Customer extends EntityBase 
{ 
    private static final long serialVersionUID = 3456353535358L; 

    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="sb_sequence") 
    @Column(name = "CUS_SEQUENCE") 
    private long cusSequence; 
. 
. 
. 
} 

背景:之前我插入第一個值到數據庫中,我需要檢索的第一個序列號(可能與選擇NEXTVAL(「序列」);)

+0

這真的好像這將不取決於JPA,但在你的JPA實現生成DDL。也就是說,如果你想知道在對象持久化到商店之前對象的ID是什麼,你可能需要自己處理調用序列。運行'select nextval('sequence');'在用'GenerationType.SEQUENCE'保存對象之前'實際上會生成兩個序列號。另見[這個相關的問題](http://stackoverflow.com/questions/3067986/calling-next-value-of-a-sequence-in-jpa)。 – ig0774 2012-03-06 22:31:50

回答