zoukankan      html  css  js  c++  java
  • Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题

    几天在用spring boot开发项目, 在开发的过程中遇到一个问题hibernate在执行sql时,总会提示表不存在。

    寻找之后发现, 建表时,采用默认设置。hibernate会把大写统一转换成下划线加小写。且 mysql在 linux下 大小写敏感。

    解决:

    1. 尝试修改mysql的cnf文件,改成不区分大小写。修改完成之后发现问题并没有解决,还产生了新的问题,表名无论大小写都失败了。

    2. 数据库层面修改没有效果, 表结构和表名不能修改,那只能通过代码实现来解决此问题了。

    原来是Hibernate5.1相关配置变了。

    参考:http://412887952-qq-com.iteye.com/blog/2315686

    参考:http://stackoverflow.com/questions/32165694/spring-hibernate-5-naming-strategy-configuration

    hibernate.ejb.naming_strategy将不再被支持,而是被替换成了两个属性:
    hibernate.physical_naming_strategy
    hibernate.implicit_naming_strategy

    对于physical_naming_strategy有两个常用的配置:

    org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy  
    org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
     

    对于PhysicalNamingStrategyStandardImpl有DefaultNamingStrategy的效果,对于SpringPhysicalNamingStrategy有ImprovedNamingStrategy的效果。

    最终将properties改成如下,成功恢复到了以前的配置

    db1.mysql.jpa.hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
  • 相关阅读:
    flash player over linux
    chmod 命令
    A*算法
    adb找不到设备
    ubuntu14.04安装wine以及国际版QQ
    linux man
    X-window
    linux file system
    linux command
    directUI
  • 原文地址:https://www.cnblogs.com/zhu573514187/p/9685662.html
Copyright © 2011-2022 走看看