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

目录
  • 关于自动建表,无法更新字段问题
    • Springboot中的配置
    • 除了create配置,还有以下几种
  • springbootjpa未自动建表问题记录
    • 检查pom是否正确引入对应模块
    • 检查application文件配置是否存在错误

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

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中没有显示建好的表,可能小猫猫坏掉了吧。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • springboot自动配置没有生效的问题定位(条件断点)

    Spring Boot在为开发人员提供更高层次的封装,进而提高开发效率的同时,也为出现问题时如何进行定位带来了一定复杂性与难度.但Spring Boot同时又提供了一些诊断工具来辅助开发与分析,如spring-boot-starter-actuator.本文分享一个基于actuator与IDEA条件断点来定位自动配置未生效的案例.望对类似问题分析与处理提供参考. 问题确认 在前文介绍的 Spring Boot从入门到实战:整合通用Mapper简化单表操作 中,我们对druid连接池做了自动配置,

  • SpringBoot 自动配置失效的解决方法

    目录 问题描述 @EnableConfigurationProperties 注解行为 配置有效,AutoTestConfiguration 未刷新 prefix-type @ConditionalOnProperty @ConditionalOnProperty match 逻辑 @ConditionalOnProperty skip 逻辑 总结 本文源自近期项目中遇到的问题, bug 总是出现在你自以为是的地方... 问题描述 下面是一个简单复现的代码片段,在你没有阅读完本文时,如果能做出正

  • springBoot下实现java自动创建数据库表

    SpringBoot环境启动项目创建数据库表 使用环境 windows+eclipse+mysql+navicat 步骤 1.创建SpringBoot项目 2.新建数据库,配置连接信息 3.编写初始化数据库表类 4.运行查看结果 1.创建SpringBoot项目 关于如何创建SpringBoot项目不再详细描述,只要创建一个可以运行的SpringBoot项目就行. 2.新建数据库,配置连接信息 2.1 新建数据库 打开Navicat新建一个Mysql连接(连接信息如用户名,密码记好,下面配置连接

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

    目录 关于自动建表,无法更新字段问题 Springboot中的配置 除了create配置,还有以下几种 springbootjpa未自动建表问题记录 检查pom是否正确引入对应模块 检查application文件配置是否存在错误 关于自动建表,无法更新字段问题 Springboot中的配置 jpa:     database-platform: org.hibernate.dialect.MySQL5InnoDBDialect     database: MYSQL     show-sql:

  • Springboot引入hibernate配置自动建表并进行增删改查操作

    目录 前言 一.引入依赖 二.配置yml 三.写代码 四.测试结果 前言 有些业务比较复杂,比如我们需要新建10张表,每张表有10个字段,如果用手工来操作,肯定非常浪费时间,而且随着代码中对实体类的修改,还要同时修改数据库表,有时候写着写着就忘了,代码改了,数据库没改,这种问题使用 hibernate 的自动建表就好啦. 一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac

  • Mybatis自动创建表和更新表结构

    最近有小伙伴问我mybatis有没有自动创建表结构的功能,因为他们之前一直使用hibernate用习惯了,理所当然的认为,在实体类上配置下注解或者写写映射文件,系统启动后就可以自动创建表. 我只能很遗憾的告诉他,mybatis并没有这个功能,看他兴致阑珊的样子,我只能安慰他,就算没有这功能,我们可以自己开发啊~~ 所以就有了下面这套系统,已开源大家可以下来看看~~ Mybatis_BuildTable_V0.2 https://git.oschina.net/sunchenbin/Mybatis

  • springboot集成flyway自动创表的详细配置

    Flayway是一款数据库版本控制管理工具,,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里:不仅支持Command Line和java api ,也支持Build构建工具和Spring boot,也可以在分布式环境下能够安全可靠安全地升级数据库,同时也支持失败恢复. Flyway最核心的就是用于记录所有版本演化和状态的MetaData表,Flyway首次启动会创建默认名为SCHEMA_VERSION的元素局表. 表中保存了版本,描述,要执行的sql脚本

  • 深入浅析SpringBoot中的自动装配

    SpringBoot的自动装配是拆箱即用的基础,也是微服务化的前提.这次主要的议题是,来看看它是怎么样实现的,我们透过源代码来把握自动装配的来龙去脉. 一.自动装配过程分析 1.1.关于@SpringBootApplication 我们在编写SpringBoot项目时,@SpringBootApplication是最常见的注解了,我们可以看一下源代码: /* * Copyright 2012-2017 the original author or authors. * * Licensed un

  • mybatis自动建表的实现方法

    1.添加ACTable依赖 <!--mybatis-plus自动建表--> <dependency> <groupId>com.gitee.sunchenbin.mybatis.actable</groupId> <artifactId>mybatis-enhance-actable</artifactId> <version>1.1.1.RELEASE</version> </dependency>

  • MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    本文实例讲述了MySQL常用的建表.添加字段.修改字段.添加索引SQL语句写法.分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, # 主键 uid INT(11) NOT NULL DEFAULT 0, # 创建者id context VARCHAR(600) NOT NULL DEFAULT '', # 公告

  • Springboot中如何自动转JSON输出

    目录 Springboot是如此的暴力 原因 Springboot自动转json的出现问题 问题复现 问题分析及解决办法 Springboot是如此的暴力 在Controller中注解为@RestController类.@GetMapping或其他Mapping注解方法后 会自动转成JSON格式… 后台打印 {msg=已查询到163条数据, data_size=163, code=0, data=[Tersga{aname='万家铺村', sum=10, run=10, down=0, req=

  • SpringBoot+jpa配置如何根据实体类自动创建表

    目录 jpa配置根据实体类自动创建表 1.配置文件application.properties 2.pom.xml引入包 3.编写实体类 4.运行项目 5.针对项目启动以后数据库并未生成数据库表问题 jpa根据Entry自动生成表 1.加入依赖 2.配置 application.yml 3. 创建Entity jpa配置根据实体类自动创建表 1.配置文件application.properties spring.datasource.url=jdbc:mysql://localhost:3306

  • SpringBoot整合flyway实现自动创建表的方法

    spring boot - v: 2.1.3.RELEASE MySQL - v:5.7 JDK -v : 11 项目结构: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan

随机推荐