1. 程式人生 > >Spring Data Jpa 實體類自動建立資料庫表失敗

Spring Data Jpa 實體類自動建立資料庫表失敗

先說一下我遇到的這個問題,首先我是通過maven建立了一個spring boot的工程,引入了Spring data jpa,結果實體類建立好之後,執行工程卻沒有在資料庫中自動建立資料表。

找了半天發現是一個配置的問題:

hibernate.ddl-auto節點的配置,這個配置有兩種方式去配置,我使用的是通過properties檔案去配置:

#DataSource Config  
spring.datasource.driver-class-name=com.mysql.jdbc.Driver  
spring.datasource.url=jdbc:mysql://localhost:6033/data_service?characterEncoding=utf8  
spring.datasource.username=root  
spring.datasource.password=root  
  
spring.jpa.show-sql= true  
spring.jpa.hibernate.ddl-auto=update  
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect  
spring.jackson.serialization.indent_output=false  

hibernate.hbm2ddl.auto節點的值有幾個create、create-drop、update、validate、none

create:每次載入hibernate會自動建立表,以後啟動會覆蓋之前的表,所以這個值基本不用,嚴重會導致的資料的丟失。

create-drop : 每次載入hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除,下一次啟動會重新建立。

update:載入hibernate時根據實體類model建立資料庫表,這是表名的依據是@Entity註解的值或者@Table註解的值,sessionFactory關閉表不會刪除,且下一次啟動會根據實體model更新結構或者有新的實體類會建立新的表。

validate:啟動時驗證表的結構,不會建立表

none:啟動時不做任何操作