Spring Data JPA 設置字段默認值方式

Spring Data JPA設置字段默認值

在Column註解中寫入以下兩個屬性,為什麼自己查一下文檔吧,即可實現字段默認值設置,並順帶解決save方法所生成的sql語句中自動填充字段為null的問題。

默認值無法更新,所以如果想在代碼裡修改字段默認值,你需要重新建表。

@Column(insertable = false,columnDefinition = "int default 1")
    private Integer sex;    
 @Column(insertable = false,columnDefinition = "decimal(19,2) DEFAULT 0.00")
    private BigDecimal accountBalance;//賬戶餘額

columnDefinition = “相當於數據庫的creter table DDL 語句”

CREATE TABLE `account_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  。。。
  。。。
  `account_balance` decimal(19,2) DEFAULT '0.00',
  。。。
  。。。
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

Spring Data JPA設置字段默認值失敗

jpa註解設置默認值用到的註解是@Column。但有一個問題就是,如果你已經建立好瞭表,然後在加上@Column(insertable = false,columnDefinition = “int default 1”)是沒有用,因為這個註解隻有在建表時才會起作用,也就是說,如果DB中表已經建好,該屬性沒有必要使用

@Column(columnDefinition=“int default 1”,nullable=false)
private int number;

所以最好是在save()或者update()寫入時增加邏輯操作

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: