jpa在欄位新增時給定預設值

範例程式:

@Column(columnDefinition="boolean default false") public boolean active;
@Column(columnDefinition="bigint default -1") public long experience;
@Column(columnDefinition="int default 0") public int times;

通常設定預設值寫法用於:

一個已上線DB且可能已有不少舊資料的情形下

因為Web開發時,新增功能頻繁且可能新增欄位時,

會常遇到問題是在建立欄位為int相關boolean型別,

因為無法指定預設值所以造成jpa建立完欄位值為null,
(目前確定是在postgresql遇過這問題,以jpa新建boolean欄位未特別設定時,預設值為null)

以往處理是進資料庫新增欄位並給定預設值,

但若用jpa的columnDefinition就可以不用再透過資料庫修改

參考資料:

Comments