springboot中關(guān)于自動建表,無法更新字段的問題
更新時間:2022年02月25日 09:58:53 作者:Tonels
這篇文章主要介紹了springboot中關(guān)于自動建表,無法更新字段的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
關(guān)于自動建表,無法更新字段問題
Springboot中的配置
jpa: ? ? database-platform: org.hibernate.dialect.MySQL5InnoDBDialect ? ? database: MYSQL ? ? show-sql: true ? ? properties: ? ? ? hibernate.id.new_generator_mappings: true ? ? ? hibernate.cache.use_second_level_cache: false ? ? ? hibernate.cache.use_query_cache: false ? ? ? hibernate.generate_statistics: false ? ? ? hibernate.hbm2ddl.auto: create # 自動生成建表語句 ? ? hibernate: ? ? ? naming: ? ? ? ? physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl # 取消駝峰式命名 hibernate.hbm2ddl.auto: create # 自動生成建表語句
除了create配置,還有以下幾種
create會自動建表,全部的Model都會新建表create-drop會新建表,但會以及SessionFactory自動刪除。update會自動建表,已存在的表無法更新,只會新增新添加的Model,生成表,所以這個注解無法更新已存在的表的字段屬性。validate會對Model和數(shù)據(jù)庫表進行校驗,字段屬性不一致時,會報錯none,不自動建表,只基于Model的@entity和@Table映射數(shù)據(jù)庫的表(字段可以不對應(yīng))
springboot jpa未自動建表問題記錄
檢查pom是否正確引入對應(yīng)模塊
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>檢查application文件配置是否存在錯誤
spring:
datasource:
url: jdbc:mysql://localhost:3306/dbdbd?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: *
password: *
driver-class-name: com.mysql.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
database: mysql
show-sql: true- 檢查實體類是否加入@Entity注解
- 檢查項目目錄結(jié)構(gòu),實體類是否在啟動類所在包或子包目錄下
- 若不在,啟動類上是否加入 @EntityScan("****") 注解
檢查過后,全都沒毛病,項目正常啟動,無報錯,但是可視化工具 navicat 中并沒有生成對應(yīng)的表,百思不得其解,也黔驢技窮了。后來抱著試一試的想法,在mysql安裝目錄bin 下 ,命令行查看數(shù)據(jù)庫表,發(fā)現(xiàn)對應(yīng)的表其實已經(jīng)建立成功,只是navicat沒有顯示出來。

然后就可以愉快的繼續(xù)啦~
至于為什么navicat中沒有顯示建好的表,可能小貓貓壞掉了吧。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Spring Initializr方式如何快速構(gòu)建Spring Boot項目
Spring lnitializr是一個Web應(yīng)用,它提供了一個基本的項目結(jié)構(gòu),能夠幫助我們快速構(gòu)建一個基礎(chǔ)的Spring Boot項目,本文分步驟講解如何使用Spring Initializr方式構(gòu)建Spring Boot項目,感興趣的朋友跟隨小編一起看看吧2023-08-08
SpringBoot ApplicationContextAware拓展接口使用詳解
當(dāng)一個類實現(xiàn)了這個接口(ApplicationContextAware)之后,這個類就可以方便獲得ApplicationContext中的所有bean。換句話說,就是這個類可以直接獲取spring配置文件中,所有有引用到的bean對象2023-04-04

