日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時(shí)間:2023/12/18 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這個(gè)問(wèn)題有2種解決方法:

我的報(bào)錯(cuò)是:

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


方法一:

轉(zhuǎn)自:https://confluence.atlassian.com/fishkb/table-xxx-doesn-t-exist-error-with-mysql-server-302810019.html

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") net.java.ao.sql.ActiveObjectSqlException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'fecru.AO_B434B9_WEB_HOOK' doesn't existat com.atlassian.activeobjects.internal.EntityManagedActiveObjects.find(EntityManagedActiveObjects.java:114)at com.atlassian.activeobjects.osgi.DelegatingActiveObjects.find(DelegatingActiveObjects.java:71)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ... Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'fecru.AO_B434B9_WEB_HOOK' doesn't exist

原因:

MySQL對(duì)lower_case_table_names使用區(qū)分大小寫(xiě)的表名比較設(shè)置??(可能值為'0')。但是,FishEye在表名??FE-4276中不一致-數(shù)據(jù)庫(kù)表OPEN的大小寫(xiě)不一致您可以使用以下查詢確認(rèn)設(shè)置:?

show variables like 'lower_case_table_names';

解決:

  • ?在MySQL中設(shè)置??lower_case_table_names的值為'0'
  • 重新啟動(dòng)MySQL和FishEye / Crucible。


  • 方法二:

    我的情況是springboot項(xiàng)目,配置文件的改法略有不同:

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

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


    以下轉(zhuǎn)自:https://blog.csdn.net/Halleycomett/article/details/78638639

    報(bào)錯(cuò)信息

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

    報(bào)錯(cuò)原因調(diào)查

    mysql里實(shí)際表名都是大寫(xiě)

    嘗試在entity上標(biāo)記表名大寫(xiě),實(shí)際測(cè)試無(wú)效,仍然找不到表

    @Entity @Data @Table(name = "T_BASE_ORDER_PRINT_CLIENT") public class MerchantPrinter {@Id@Column(name = "print_client_id")private String id;@Column(name = "merchant_id")private String merchantId;private String imei;}

    最終的解決方案

    在spring jpa配置中增加physical-strategy配置解決問(wèn)題spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://XXX:3306/dbnameusername: rootpassword: *******schema:jpa:hibernate:ddl-auto: nonenaming:physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImplshow-sql: true

    physical naming strategy :used to convert a “l(fā)ogical name” (either implicit or explicit) name of a table or column into a physical name (e.g. following corporate naming guidelines)?
    physical naming strategy:物理命名策略,用于轉(zhuǎn)換“邏輯名稱”(隱式或顯式)的表或列成一個(gè)物理名稱

    總結(jié)

    以上是生活随笔為你收集整理的解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。