記錄一個使用Spring?Data?JPA設(shè)置默認(rèn)值的問題
Spring Data JPA設(shè)置默認(rèn)值的問題
我有一個entity實(shí)體,其中里面有一個布爾類型的字段:
//entity table注解略
public class TableEntity {
private Boolean b;
public Boolean getB() {
return b;
}
public void setB(Boolean b) {
this.b= b;
}
}
然后現(xiàn)在是需要給這個布爾型變量設(shè)默認(rèn)值true
一開始經(jīng)過百度,寫法是這樣的
//entity table注解略
public class TableEntity {
@Column(name = "b", columnDefinition = "bit default 1", nullable = false)
private Boolean b;
public Boolean getB() {
return b;
}
public void setB(Boolean b) {
this.b= b;
}
}
這個寫法其實(shí)應(yīng)該沒什么問題,當(dāng)時的數(shù)據(jù)庫是sql server,但是在換環(huán)境部署,切換到MySQL的時候出了問題,被懷疑是我這里寫的問題(其實(shí)我總感覺應(yīng)該沒什么關(guān)系)
于是改了第二版
//entity table注解略
public class TableEntity {
@Column(name = "b", nullable = false)
@org.hibernate.annotations.Type(type = "yes_no")
private Boolean b = true;
public Boolean getB() {
return b;
}
public void setB(Boolean b) {
this.b= b;
}
}
直接把私有屬性值賦值,這也是通過百度之后,有部分文章說的一種方法,至于type那個注解,就是把布爾型變量在數(shù)據(jù)庫中通過字符型變量來存儲,存儲"Y"或者"N"。
但是這個寫法,工程跑起來之后還是有問題的,存不上默認(rèn)值,等于白寫。
在大佬的指點(diǎn)下,有了第三種寫法
//entity table注解略
public class TableEntity {
@Column(name = "b", nullable = false)
@org.hibernate.annotations.Type(type = "yes_no")
private Boolean b = true;
public Boolean getB() {
if(b==null) {
return true;
}
return b;
}
public void setB(Boolean b) {
if(b==null) {
return;
}
this.b= b;
}
}
大概意思是,在JPA進(jìn)行保存的時候框架內(nèi)部會自己調(diào)用get/set方法來進(jìn)行屬性賦值和取值,所以直接在get/set方法進(jìn)行默認(rèn)值的賦值就可以了。
實(shí)際測試效果拔群。
Jpa設(shè)置默認(rèn)值約束
使用SpringDataJpa設(shè)置字段的默認(rèn)值約束的2種方式
1、修改建表時的列定義屬性
@Column(columnDefinition="INT DEFAULT '1'") private Integer status;
2、通過Hibernate(org.hibernate.annotations.ColumnDefault)
下提供的注解進(jìn)行設(shè)置默認(rèn)值
@ColumnDefault("1")
private Integer status;
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 通過發(fā)送json,post請求,返回json數(shù)據(jù)的方法
下面小編就為大家分享一篇java 通過發(fā)送json,post請求,返回json數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
使用Filter攔截器如何實(shí)現(xiàn)請求跨域轉(zhuǎn)發(fā)
這篇文章主要介紹了使用Filter攔截器如何實(shí)現(xiàn)請求跨域轉(zhuǎn)發(fā),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringDataJpa:JpaRepository增刪改查操作
這篇文章主要介紹了SpringDataJpa:JpaRepository增刪改查操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java同步框架AbstractQueuedSynchronizer詳解
本篇文章主要介紹了Java同步框架AbstractQueuedSynchronizer詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10

