1. 程式人生 > >jpa的hibernate.ddl-auto的幾個屬性值區別

jpa的hibernate.ddl-auto的幾個屬性值區別

jpa是一種規範,但是對jpa支援最好的就是hibernate,所以一般來說jpa指的就是hibernate實現的jpa。
在使用springboot時,使用jpa,加上jpa的起步依賴spring-boot-starter-data-jpa即可。
在配置檔案中除了配置資料來源以外,還可以配置一些方便開發使用的選項,如spring.jpa.show-sql=true,這個屬性可以在操作資料庫時顯示sql語句。
還有一個屬性值比較常用:spring.jpa.hibernate.ddl-auto,其屬性值作用區別介紹如下:

create:
每次載入hibernate時都會刪除上一次的生成的表,然後根據你的model類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執行,這就是導致資料庫表資料丟失的一個重要原因。
create-drop :
每次載入hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除。
update:
最常用的屬性,第一次載入hibernate時根據model類會自動建立起表的結構(前提是先建立好資料庫),以後載入hibernate時根據 model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到伺服器後,表結構是不會被馬上建立起來的,是要等 應用第一次執行起來後才會。
validate :
每次載入hibernate時,驗證建立資料庫表結構,只會和資料庫中的表進行比較,不會建立新表,但是會插入新值。