2010-12-23 163 views
2

我使用Postgres作爲數據庫和JPA 2.0作爲提供者。JPA:設置默認列值以在數據庫中排序

我一直在使用@GeneratedValue(strategy = GenerationType.IDENTITY)產生它自己的序列,用於列,同時執行此查詢(或類似)

ALTER TABLE "comment" ALTER COLUMN id SET DEFAULT nextval('comment_id_seq'::regclass); 

我現在用的

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "GEN_COMMENT") 
@SequenceGenerator(name = "GEN_COMMENT", sequenceName = "SEQ_COMMENT") 

也產生它自己的序列但不執行該查詢。

我的觀點是,當我一直在使用IDENTITY時,數據庫可以自動插入序列中的列值,當除了通過應用程序之外還有其他數據庫訪問時,該值是有用的。

所以我的問題是,如果有什麼辦法如何強制JPA設置該列的默認值序列沒有重新定義@Column(columnDefinition="...")

非常感謝。

回答

1

這是數據庫特定的,Postgres已將類型serial定義爲生成類型IDENTITY,它會自動創建此數據庫結構。