欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

springboot中关于自动建表,无法更新字段的问题

时间:2022-09-07 09:52:32|栏目:JAVA代码|点击:

关于自动建表,无法更新字段问题

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和数据库表进行校验,字段属性不一致时,会报错none,不自动建表,只基于Model的@entity和@Table映射数据库的表(字段可以不对应)

springboot jpa未自动建表问题记录

检查pom是否正确引入对应模块

<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注解
  • 检查项目目录结构,实体类是否在启动类所在包或子包目录下
  • 若不在,启动类上是否加入  @EntityScan("****") 注解

检查过后,全都没毛病,项目正常启动,无报错,但是可视化工具 navicat 中并没有生成对应的表,百思不得其解,也黔驴技穷了。后来抱着试一试的想法,在mysql安装目录bin 下 ,命令行查看数据库表,发现对应的表其实已经建立成功,只是navicat没有显示出来。

然后就可以愉快的继续啦~

至于为什么navicat中没有显示建好的表,可能小猫猫坏掉了吧。

上一篇:springmvc中下载中文文件名称为下划线的解决方案

栏    目:JAVA代码

下一篇:Java8如何从一个Stream中过滤null值

本文标题:springboot中关于自动建表,无法更新字段的问题

本文地址:http://www.codeinn.net/misctech/212987.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有