最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

記錄一個(gè)使用Spring?Data?JPA設(shè)置默認(rèn)值的問題

 更新時(shí)間:2021年11月23日 11:40:31   作者:qq_34785454  
這篇文章主要介紹了使用Spring?Data?JPA設(shè)置默認(rèn)值的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Spring Data JPA設(shè)置默認(rèn)值的問題

我有一個(gè)entity實(shí)體,其中里面有一個(gè)布爾類型的字段:

//entity table注解略
public class TableEntity { 
    private Boolean b; 
 public Boolean getB() {
        return b;
    }    
    public void setB(Boolean b) {
        this.b= b;
    }
}

然后現(xiàn)在是需要給這個(gè)布爾型變量設(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;
    }
}

這個(gè)寫法其實(shí)應(yīng)該沒什么問題,當(dāng)時(shí)的數(shù)據(jù)庫是sql server,但是在換環(huán)境部署,切換到MySQL的時(shí)候出了問題,被懷疑是我這里寫的問題(其實(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那個(gè)注解,就是把布爾型變量在數(shù)據(jù)庫中通過字符型變量來存儲(chǔ),存儲(chǔ)"Y"或者"N"。

但是這個(gè)寫法,工程跑起來之后還是有問題的,存不上默認(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)行保存的時(shí)候框架內(nèi)部會(huì)自己調(diào)用get/set方法來進(jìn)行屬性賦值和取值,所以直接在get/set方法進(jìn)行默認(rèn)值的賦值就可以了。

實(shí)際測試效果拔群。

Jpa設(shè)置默認(rèn)值約束

使用SpringDataJpa設(shè)置字段的默認(rèn)值約束的2種方式

1、修改建表時(shí)的列定義屬性

@Column(columnDefinition="INT DEFAULT '1'")
private Integer status;

2、通過Hibernate(org.hibernate.annotations.ColumnDefault)

下提供的注解進(jìn)行設(shè)置默認(rèn)值

@ColumnDefault("1")
private Integer status;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java多線程下的其他組件之CyclicBarrier、Callable、Future和FutureTask詳解

    Java多線程下的其他組件之CyclicBarrier、Callable、Future和FutureTask詳解

    這篇文章主要介紹了Java多線程下的其他組件之CyclicBarrier、Callable、Future和FutureTask詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • SpringBoot 多數(shù)據(jù)源及事務(wù)解決方案小結(jié)

    SpringBoot 多數(shù)據(jù)源及事務(wù)解決方案小結(jié)

    本文主要介紹了多數(shù)據(jù)源管理的解決方案(應(yīng)用層事務(wù),而非XA二段提交保證),以及對(duì)多個(gè)庫同時(shí)操作的事務(wù)管理,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Java中int和Integer的區(qū)別

    Java中int和Integer的區(qū)別

    這篇文章主要介紹的是?Java中int和Integer的區(qū)別,Java?是一種強(qiáng)數(shù)據(jù)類型的語言,因此所有的屬性必須有一個(gè)數(shù)據(jù)類型,下面文章基于Java詳細(xì)int和Integer有何區(qū)別,需要的朋友可以參考一下
    2021-11-11
  • java 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法

    java 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法

    下面小編就為大家?guī)硪黄猨ava 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • spring配置不掃描service層的原因解答

    spring配置不掃描service層的原因解答

    這篇文章主要介紹了spring配置不掃描service層的原因解答,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Swing常用組件之文本框和文本區(qū)

    Swing常用組件之文本框和文本區(qū)

    這篇文章主要為大家詳細(xì)介紹了Swing常用組件之文本框(JTestField)和文本區(qū)(JTextArea),Swing是一個(gè)用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包,本文開始帶大家學(xué)習(xí)Swing
    2016-05-05
  • spring單例如何改多例

    spring單例如何改多例

    這篇文章主要介紹了spring單例如何改多例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 很詳細(xì)的Log4j配置步驟

    很詳細(xì)的Log4j配置步驟

    Log4J的配置文件(Configuration File)就是用來設(shè)置記錄器的級(jí)別、存放器和布局的,它可接key=value格式的設(shè)置或xml格式的設(shè)置信息。通過配置,可以創(chuàng)建出Log4J的運(yùn)行環(huán)境。
    2008-11-11
  • java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):順序隊(duì)列和循環(huán)隊(duì)列

    java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):順序隊(duì)列和循環(huán)隊(duì)列

    下面小編就為大家分享一篇java隊(duì)列實(shí)現(xiàn)方法(順序隊(duì)列,循環(huán)隊(duì)列),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-08-08
  • 如何通過Java實(shí)現(xiàn)加密、解密Word文檔

    如何通過Java實(shí)現(xiàn)加密、解密Word文檔

    這篇文章主要介紹了如何通過Java實(shí)現(xiàn)加密、解密Word文檔,對(duì)一些重要文檔,常需要對(duì)文件進(jìn)行加密,查看文件時(shí),需要正確輸入密碼才能打開文件。下面介紹了一種比較簡單的方法給Word文件加密以及如何給已加密的Word文件解除密碼保護(hù),需要的朋友可以參考下
    2019-07-07

最新評(píng)論

安新县| 凤庆县| 剑川县| 大庆市| 抚顺县| 任丘市| 潼关县| 贵德县| 开远市| 虞城县| 新巴尔虎右旗| 兴化市| 吴堡县| 榆中县| 微山县| 阿拉善盟| 霍林郭勒市| 南陵县| 土默特右旗| 诏安县| 怀仁县| 桐梓县| 喀喇沁旗| 景东| 宁阳县| 夏河县| 卢氏县| 收藏| 乐昌市| 银川市| 镇远县| 永善县| 海盐县| 柳江县| 白河县| 西城区| 抚州市| 武鸣县| 普定县| 同心县| 海晏县|