zoukankan      html  css  js  c++  java
  • Spring Boot Jpa 表名小写转大写

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




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

  • 相关阅读:
    使用强名称为程序集签名
    使用SN.exe对.Net生成的程序集进行签名
    .Net 程序集 签名工具sn.exe 密钥对SNK文件 最基本的用法
    MongoDB查询
    mongo批量写入es
    用 Spark 处理复杂数据类型(Array、Map、JSON字符串等)
    kafka消费者
    kafka生产者
    Pyspark常用API总结
    selenium+chromedriver+python3 不加载图片
  • 原文地址:https://www.cnblogs.com/jpfss/p/10894495.html
Copyright © 2011-2022 走看看