<p>今天在使用SpringBoot整合Hibernate后创建表,表名为小写,而在linux下,mysql的表名是区分大小写的,因此在我的数据表中,就出现了两个一样的表</p><p>act_id_user 和&nbsp; ACT_ID_USER<br></p><p>本来为设置了注解的表名是大写的</p><pre class="brush:bash;toolbar:false">@Table(name="ACT_ID_USER")</pre><p>经过查询资料发现,修改/etc/my.cnf的配置,使得mysql不区分大小写是无效的</p><p>最后发现,我们可以在 application.properties里面添加如下内容即可</p><pre class="brush:bash;toolbar:false">spring.jpa.hibernate.naming.physical-strategy&nbsp;=&nbsp;cn.studyBoot.dao.strategy.UpperTableStrategy</pre><p>UpperTableStrategy类的内容如下<br></p><pre class="brush:java;toolbar:false">import&nbsp;org.hibernate.boot.model.naming.Identifier;

import org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl;

import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;

public class UpperTableStrategy extends PhysicalNamingStrategyStandardImpl {

    /**

    *

    */

    private static final long serialVersionUID = 1L;

    @Override

    public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) {

        // 将表名全部转换成大写

        String tableName = name.getText().toUpperCase();

         

        return name.toIdentifier(tableName);

    }

    

    @Override

    public Identifier toPhysicalColumnName(Identifier name, JdbcEnvironment context) {

        String colnumName = name.getText().toUpperCase();

        return name.toIdentifier(colnumName);

    }

}

需要注意的是,如果您的hibernate版本不是大于5.0

那么配置里的内容应该是

spring.jpa.hibernate.naming-strategy=cn.studyBoot.dao.strategy.UpperTableStrategy

同时UpperTableStrategy这个类继承的是ImprovedNamingStrategy,并且重写相应的方法即可

如果您觉得本文章对您有用,也为了更好的运营博客,您可以点击这里捐助

未经允许不得转载:【java爱好者】博客 » Spring Boot Jpa 表名小写转大写

Spring Boot Jpa 表名小写转大写的更多相关文章

  1. Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题

      (转载)Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题   这几天在用spring boot开发项目, 在开发的过程中遇到一个问题hibernate在执 ...

  2. Spring Boot JPA中关联表的使用

    文章目录 添加依赖 构建Entity 构建Repository 构建初始数据 测试 Spring Boot JPA中关联表的使用 本文中,我们会将会通过一个Book和Category的关联关系,来讲解 ...

  3. Spring Boot(五):Spring Boot Jpa 的使用

    在上篇文章Spring Boot(二):Web 综合开发中简单介绍了一下 Spring Boot Jpa 的基础性使用,这篇文章将更加全面的介绍 Spring Boot Jpa 常见用法以及注意事项. ...

  4. Spring Boot Jpa 的使用

    Spring Boot Jpa 介绍 首先了解 Jpa 是什么? Jpa (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范.它为 Java 开发人员提供了一种 ...

  5. (转)Spring Boot(五):Spring Boot Jpa 的使用

    http://www.ityouknow.com/springboot/2016/08/20/spring-boot-jpa.html 在上篇文章Spring Boot(二):Web 综合开发中简单介 ...

  6. spring boot JPA中实体类常用注解

    spring boot jpa中的注解很多,参数也比较多.没必要全部记住,但是经常查看官方文档也比较麻烦,记录一下一些常用的注解.通过一些具体的例子来帮助记忆. @Entity @Table(name ...

  7. Spring Boot JPA 连接数据库

    本文将介绍怎样在Spring Boot project中加入JPA作为持久化方式. 改动 pom.xml 依赖 与上一篇介绍的 jdbc 不同的是 spring-boot-starter-jdbc 改 ...

  8. Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例

    Spring Boot(十五):spring boot+jpa+thymeleaf增删改查示例 一.快速上手 1,配置文件 (1)pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 ...

  9. Spring boot Jpa添加对象字段使用数据库默认值

    Spring boot Jpa添加对象字段使用数据库默认值 jpa做持久层框架,项目中数据库字段有默认值和非空约束,这样在保存对象是必须保存一个完整的对象,但在开发中我们往往只是先保存部分特殊的字段其 ...

随机推荐

  1. 用java打印输出九九乘法表

    package com.wh.multiplication public class Multiplication Table { public static void main(String[] a ...

  2. vue watch监听对象及对应值的变化

    data:{ a:1, b:{ value:1, type:1, } }, watch:{ a(val, oldVal){//普通的watch监听 console.log("a: " ...

  3. Oracle中默认创建的表

    安装Oracle数据库后,会自动创建几个表.分别是emp.dept.bonus(也有可能不一样),这些表都在scott账户中.

  4. Elasticsearch--集群&时光之门和恢复控制

    节点发现 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如果找到主节点,该节点加入一个已经组成了的集群:如果没有找到,该节点成为主节点(如果配置允许).形 ...

  5. openmv第一次调试

    2018-09-19  20:14:51 import sensor, image, time import car import json import time from pyb import U ...

  6. 微信小程序组件解读和分析:十四、slider滑动选择器

    slider滑动选择器组件说明: 滑动选择器. slider滑动选择器示例代码运行效果如下: 下面是WXML代码: [XML] 纯文本查看 复制代码 ? 01 02 03 04 05 06 07 08 ...

  7. 在action中将字符串、对象、list集合保存到值栈中,在jsp页面中获取的方法

    转自:csdn 封装对象User,属性有id,username,email等1.1:在action中将字符串保存到值栈中   1.1.1 获取值栈对象         ValueStack stack ...

  8. 更改ligerui源码实现分页样式修改

    修改后样式: 第一步:实现功能. 更改源码部分ligerui.all.js文件 读源代码,发现ligerui底部工具条是这样实现的(ps:注释部分为源码) _render: function () { ...

  9. 类unix系统 递归删除指定文件

    递归删除当前目录下所有以 ._开头的文件 find . -name "._*" | xargs rm -f 或者: find . -name "._*" -ex ...

  10. CAD参数绘制半径标注(网页版)

    主要用到函数说明: _DMxDrawX::DrawDimRadial 绘制一个半径标注.详细说明如下: 参数 说明 DOUBLE dCenterX 被标注的曲线的中点X值 DOUBLE dCenter ...