springboot中關(guān)于自動(dòng)建表,無(wú)法更新字段的問題
關(guān)于自動(dòng)建表,無(wú)法更新字段問題
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 # 自動(dòng)生成建表語(yǔ)句 ? ? hibernate: ? ? ? naming: ? ? ? ? physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl # 取消駝峰式命名 hibernate.hbm2ddl.auto: create # 自動(dòng)生成建表語(yǔ)句
除了create配置,還有以下幾種
create會(huì)自動(dòng)建表,全部的Model都會(huì)新建表create-drop會(huì)新建表,但會(huì)以及SessionFactory自動(dòng)刪除。update會(huì)自動(dòng)建表,已存在的表無(wú)法更新,只會(huì)新增新添加的Model,生成表,所以這個(gè)注解無(wú)法更新已存在的表的字段屬性。validate會(huì)對(duì)Model和數(shù)據(jù)庫(kù)表進(jìn)行校驗(yàn),字段屬性不一致時(shí),會(huì)報(bào)錯(cuò)none,不自動(dòng)建表,只基于Model的@entity和@Table映射數(shù)據(jù)庫(kù)的表(字段可以不對(duì)應(yīng))
springboot jpa未自動(dòng)建表問題記錄
檢查pom是否正確引入對(duì)應(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文件配置是否存在錯(cuò)誤
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- 檢查實(shí)體類是否加入@Entity注解
- 檢查項(xiàng)目目錄結(jié)構(gòu),實(shí)體類是否在啟動(dòng)類所在包或子包目錄下
- 若不在,啟動(dòng)類上是否加入 @EntityScan("****") 注解
檢查過后,全都沒毛病,項(xiàng)目正常啟動(dòng),無(wú)報(bào)錯(cuò),但是可視化工具 navicat 中并沒有生成對(duì)應(yīng)的表,百思不得其解,也黔驢技窮了。后來(lái)抱著試一試的想法,在mysql安裝目錄bin 下 ,命令行查看數(shù)據(jù)庫(kù)表,發(fā)現(xiàn)對(duì)應(yīng)的表其實(shí)已經(jīng)建立成功,只是navicat沒有顯示出來(lái)。

然后就可以愉快的繼續(xù)啦~
至于為什么navicat中沒有顯示建好的表,可能小貓貓壞掉了吧。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Spring Initializr方式如何快速構(gòu)建Spring Boot項(xiàng)目
Spring lnitializr是一個(gè)Web應(yīng)用,它提供了一個(gè)基本的項(xiàng)目結(jié)構(gòu),能夠幫助我們快速構(gòu)建一個(gè)基礎(chǔ)的Spring Boot項(xiàng)目,本文分步驟講解如何使用Spring Initializr方式構(gòu)建Spring Boot項(xiàng)目,感興趣的朋友跟隨小編一起看看吧2023-08-08
SpringBoot ApplicationContextAware拓展接口使用詳解
當(dāng)一個(gè)類實(shí)現(xiàn)了這個(gè)接口(ApplicationContextAware)之后,這個(gè)類就可以方便獲得ApplicationContext中的所有bean。換句話說,就是這個(gè)類可以直接獲取spring配置文件中,所有有引用到的bean對(duì)象2023-04-04
Java設(shè)計(jì)模式之單例模式實(shí)例分析
這篇文章主要介紹了Java設(shè)計(jì)模式之單例模式,以實(shí)例形式較為詳細(xì)的分析了單例模式的概念、定義及簡(jiǎn)單實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-11-11
MyBatis實(shí)現(xiàn)三級(jí)樹查詢的示例代碼
在實(shí)際項(xiàng)目開發(fā)中,樹形結(jié)構(gòu)的數(shù)據(jù)查詢是一個(gè)非常常見的需求,比如組織架構(gòu)、菜單管理、地區(qū)選擇等場(chǎng)景都需要處理樹形數(shù)據(jù),本文將詳細(xì)講解如何使用MyBatis實(shí)現(xiàn)三級(jí)樹形數(shù)據(jù)的查詢,需要的朋友可以參考下2024-12-12
詳解Java的堆內(nèi)存與棧內(nèi)存的存儲(chǔ)機(jī)制
這篇文章主要介紹了Java的堆內(nèi)存與棧內(nèi)存的存儲(chǔ)機(jī)制,包括JVM的內(nèi)存優(yōu)化和GC等相關(guān)方面內(nèi)容,需要的朋友可以參考下2016-01-01

