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

springboot中使用jpa下hibernate的ddl-auto方式

 更新時(shí)間:2022年02月25日 09:41:59   作者:小丫頭姍珊  
這篇文章主要介紹了springboot中使用jpa下hibernate的ddl-auto方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用jpa下hibernate的ddl-auto

今天做一個(gè)報(bào)表的功能,發(fā)現(xiàn)一個(gè)表中的shopProductId都為null,但在程序中判斷用的是shopProductId,而且表中有productId不為null,在查找原因的途中,才得知是有人將productId改為了shopProductId,但是數(shù)據(jù)沒(méi)有更新過(guò)去。

遇到這種情況,我們?cè)趺茨懿榭吹侥承┳侄伪桓淖兞四兀?/strong>

由于我們用的框架是springBoot+jap-hibernate,然后在jpa下的hibernate,在application配置文件中,有

ddl-auto的配置

  • ddl-auto:create每次運(yùn)行該程序,沒(méi)有表格會(huì)新建表格,表內(nèi)有數(shù)據(jù)會(huì)清空
  • ddl-auto:create-drop每次程序結(jié)束的時(shí)候會(huì)清空表
  • ddl-auto:update每次運(yùn)行程序,沒(méi)有表格會(huì)新建表格,表內(nèi)有數(shù)據(jù)不會(huì)清空,只會(huì)更新
  • ddl-auto:validate運(yùn)行程序會(huì)校驗(yàn)數(shù)據(jù)與數(shù)據(jù)庫(kù)的字段類型是否相同,不同會(huì)報(bào)錯(cuò)

把ddl-auto改為validate時(shí),我們啟動(dòng)項(xiàng)目時(shí),會(huì)提示哪一個(gè)字段被更改,這樣我們?cè)诎l(fā)布上線時(shí),會(huì)及時(shí)發(fā)現(xiàn),不至于出現(xiàn)錯(cuò)誤。而正常運(yùn)行的時(shí)候,一般設(shè)置為update屬性。 

spring.jpa.hibernate.ddl-auto的配置

spring.jpa.hibernate.ddl-auto 可以顯式設(shè)置 spring.jpa.hibernate.ddl-auto ,

標(biāo)準(zhǔn)的Hibernate屬性值有 none,validate,update,create,create-drop。

Spring Boot 會(huì)根據(jù)數(shù)據(jù)庫(kù)是否是內(nèi)嵌類型,選擇一個(gè)默認(rèn)值。

具體的關(guān)系見(jiàn)下

內(nèi)嵌類型數(shù)據(jù)庫(kù)名稱默認(rèn)值
內(nèi)嵌hsqldb, h2, derbycreate-drop
非內(nèi)嵌其他數(shù)據(jù)庫(kù)none

spring.jpa.hibernate.ddl-auto的四個(gè)屬性的含義見(jiàn)下表:

屬性值作用
create每次加載hibernate時(shí)都會(huì)刪除上一次的生成的表,然后根據(jù)你的model類再重新來(lái)生成新表,哪怕兩次沒(méi)有任何改變也要這樣執(zhí)行,這就是導(dǎo)致數(shù)據(jù)庫(kù)表數(shù)據(jù)丟失的一個(gè)重要原因。
create-drop每次加載hibernate時(shí)根據(jù)model類生成表,但是sessionFactory一關(guān)閉,表就自動(dòng)刪除。
update最常用的屬性,第一次加載hibernate時(shí)根據(jù)model類會(huì)自動(dòng)建立起表的結(jié)構(gòu)(前提是先建立好數(shù)據(jù)庫(kù)),以后加載hibernate時(shí)根據(jù) model類自動(dòng)更新表結(jié)構(gòu),即使表結(jié)構(gòu)改變了但表中的行仍然存在不會(huì)刪除以前的行。要注意的是當(dāng)部署到服務(wù)器后,表結(jié)構(gòu)是不會(huì)被馬上建立起來(lái)的,是要等應(yīng)用第一次運(yùn)行起來(lái)后才會(huì)。
validate每次加載hibernate時(shí),驗(yàn)證創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu),只會(huì)和數(shù)據(jù)庫(kù)中的表進(jìn)行比較,不會(huì)創(chuàng)建新表,但是會(huì)插入新值。

此外,啟動(dòng)時(shí)處于classpath根目錄下的 import.sql文件會(huì)被執(zhí)行(前提是ddl-auto屬性被設(shè)置為 create 或create-drop)。這在demos或測(cè)試時(shí)很有用,但在生產(chǎn)環(huán)境中可能不期望這樣。

這是Hibernate的特性,和Spring沒(méi)有一點(diǎn)關(guān)系。

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

相關(guān)文章

  • Java Collections.sort()排序代碼案例

    Java Collections.sort()排序代碼案例

    這篇文章主要介紹了Java Collections.sort()排序代碼案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java位集合之BitMap、BitSet和布隆過(guò)濾器示例解析

    Java位集合之BitMap、BitSet和布隆過(guò)濾器示例解析

    這篇文章主要介紹了Java中位集合的基本概念、實(shí)現(xiàn)方法以及應(yīng)用場(chǎng)景,包括Bit-Map、BitSet和BloomFilter,Bit-Map通過(guò)位操作高效地存儲(chǔ)和查詢?cè)貭顟B(tài),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • java基于servlet實(shí)現(xiàn)文件上傳功能解析

    java基于servlet實(shí)現(xiàn)文件上傳功能解析

    這篇文章主要為大家詳細(xì)介紹了java基于servlet實(shí)現(xiàn)上傳功能,后臺(tái)使用java實(shí)現(xiàn),前端主要是js的ajax實(shí)現(xiàn),感興趣的小伙伴們可以參考一下
    2016-05-05
  • java線程的基礎(chǔ)實(shí)例解析

    java線程的基礎(chǔ)實(shí)例解析

    這篇文章主要介紹了java線程的基礎(chǔ)實(shí)例解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • 淺析Java數(shù)據(jù)庫(kù)操作工具包jOOQ的使用

    淺析Java數(shù)據(jù)庫(kù)操作工具包jOOQ的使用

    jOOQ?是一個(gè)輕量級(jí)的?Java?ORM(對(duì)象關(guān)系映射)框架,可用來(lái)構(gòu)建復(fù)雜的?SQL?查詢,這篇文章主要來(lái)和大家介紹一下jOOQ的使用,需要的可以參考下
    2024-04-04
  • 關(guān)于IDEA的junit單元測(cè)試Scanner輸入不可用的問(wèn)題(多種原因分析)

    關(guān)于IDEA的junit單元測(cè)試Scanner輸入不可用的問(wèn)題(多種原因分析)

    IDEA在Junit測(cè)試中使用了Scanner,但是控制臺(tái)一直轉(zhuǎn)圈,無(wú)法輸入,eclipse默認(rèn)可用,其實(shí)解決方法很多,今天小編給大家分享多種問(wèn)題原因分析及解決方法,感興趣的朋友一起看看吧
    2021-06-06
  • 詳解Java中List的正確的刪除方法

    詳解Java中List的正確的刪除方法

    這篇文章主要為大家詳細(xì)介紹了Java中List的正確的刪除方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下
    2022-05-05
  • Java 前臺(tái)加后臺(tái)精品圖書(shū)管理系統(tǒng)的實(shí)現(xiàn)

    Java 前臺(tái)加后臺(tái)精品圖書(shū)管理系統(tǒng)的實(shí)現(xiàn)

    相信每一個(gè)學(xué)生學(xué)編程的時(shí)候,應(yīng)該都會(huì)寫(xiě)一個(gè)小項(xiàng)目——圖書(shū)管理系統(tǒng)。為什么這么說(shuō)呢?我認(rèn)為一個(gè)學(xué)校的氛圍很大一部分可以從圖書(shū)館的氛圍看出來(lái),而圖書(shū)管理系統(tǒng)這個(gè)不大不小的項(xiàng)目,接觸的多,也比較熟悉,不會(huì)有陌生感,能夠練手,又有些難度,所以我的小項(xiàng)目也來(lái)了
    2021-11-11
  • Java中的15種鎖

    Java中的15種鎖

    在讀很多并發(fā)文章中,會(huì)提及各種各樣鎖如公平鎖,樂(lè)觀鎖等等,這篇文章小編將向大家介紹是各種鎖的分類,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • 如何利用Spring把元素解析成BeanDefinition對(duì)象

    如何利用Spring把元素解析成BeanDefinition對(duì)象

    這篇文章主要介紹了如何利用Spring把元素解析成BeanDefinition對(duì)象,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08

最新評(píng)論

长岭县| 西乌珠穆沁旗| 靖宇县| 正阳县| 枣阳市| 娱乐| 阿勒泰市| 镇康县| 顺义区| 项城市| 抚远县| 叙永县| 长泰县| 治县。| 鄂托克前旗| 大英县| 布尔津县| 靖安县| 万盛区| 枝江市| 晋宁县| 衡南县| 深泽县| 邻水| 文成县| 宜宾市| 河曲县| 遂溪县| 丰原市| 霍林郭勒市| 南开区| 锡林浩特市| 通海县| 万全县| 沭阳县| 浏阳市| 象州县| 鸡西市| 宽甸| 枣强县| 封开县|