Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 547|回复: 0

解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题

[复制链接]
  • TA的每日心情
    奋斗
    半小时前
  • 签到天数: 801 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    725708
    发表于 2021-7-19 15:37:43 | 显示全部楼层 |阅读模式

    这个问题有2种解决方法:

    我的报错是:

     java.sql.SQLSyntaxErrorException: Table 'gaei_ms.gaei_work_task' doesn't exist

     

    方法一:

    转自:https://confluence.atlassian.com/fishkb/table-xxx-doesn-t-exist-error-with-mysql-server-302810019.html

    1. 2012-09-05 10:12:30,728 ERROR [btpool0-472 ] fisheye.app TotalityFilter-logExceptionDetails - Exception "com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'fecru.AO_B434B9_WEB_HOOK' doesn't exist" (net.java.ao.sql.ActiveObjectSqlException) while processing "/plugins/servlet/webhooks/list" (Referer:"https://fisheye.bln.native-instruments.de/admin/viewServerSettings.do")
    2. net.java.ao.sql.ActiveObjectSqlException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'fecru.AO_B434B9_WEB_HOOK' doesn't exist
    3. at com.atlassian.activeobjects.internal.EntityManagedActiveObjects.find(EntityManagedActiveObjects.java:114)
    4. at com.atlassian.activeobjects.osgi.DelegatingActiveObjects.find(DelegatingActiveObjects.java:71)
    5. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    6. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    7. ...
    8. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'fecru.AO_B434B9_WEB_HOOK' doesn't exist

    原因:

    MySQL对lower_case_table_names使用区分大小写的表名比较设置  (可能值为'0')。但是,FishEye在表名  FE-4276中不一致-数据库表OPEN的大小写不一致您可以使用以下查询确认设置: 

    show variables like 'lower_case_table_names'; 

    解决:

    1.  在MySQL中设置  lower_case_table_names的值为'0'
    2. 重新启动MySQL和FishEye / Crucible。

     

     

     

    方法二:

    我的情况是springboot项目,配置文件的改法略有不同:

    我的改法是在配置文件中加上这一行:

    spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

     

    以下转自:https://blog.csdn.net/Halleycomett/article/details/78638639

    报错信息

    1. org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    2.  
    3.  
    4. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table XXX doesn't exist

    报错原因调查

    mysql里实际表名都是大写

    尝试在entity上标记表名大写,实际测试无效,仍然找不到表

    1. @Entity
    2. @Data
    3. @Table(name = "T_BASE_ORDER_PRINT_CLIENT")
    4. public class MerchantPrinter {
    5.  
    6. @Id
    7. @Column(name = "print_client_id")
    8. private String id;
    9.  
    10. @Column(name = "merchant_id")
    11. private String merchantId;
    12.  
    13. private String imei;
    14.  
    15. }

    最终的解决方案

    1. 在spring jpa配置中增加physical-strategy配置解决问题
    2.  
    3. spring:
    4. datasource:
    5. driver- class-name: com.mysql.jdbc.Driver
    6. url: jdbc:mysql: //XXX:3306/dbname
    7. username: root
    8. password: *******
    9. schema:
    10. jpa:
    11. hibernate:
    12. ddl-auto: none
    13. naming:
    14. physical-strategy: org .hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    15. show-sql: true

    physical naming strategy :used to convert a “logical name” (either implicit or explicit) name of a table or column into a physical name (e.g. following corporate naming guidelines) 
    physical naming strategy:物理命名策略,用于转换“逻辑名称”(隐式或显式)的表或列成一个物理名称

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-5 14:52 , Processed in 0.994833 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表