jpa遇到mysql表名大写怎么办_解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题...
一般实体类中的属性, 如contentType会被hibernate默认映射为content_type,如果数据库中的字段是contenttype则会不匹配
这个问题有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
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 exist
at 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对lower_case_table_names使用区分大小写的表名比较设置 (可能值为'0')。但是,FishEye在表名 FE-4276中不一致-数据库表OPEN的大小写不一致。您可以使用以下查询确认设置:
show variables like 'lower_case_table_names';
解决:
重新启动MySQL和FishEye / Crucible。
方法二:
我的情况是springboot项目,配置文件的改法略有不同:
我的改法是在配置文件中加上这一行:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
以下转自:https://blog.csdn.net/Halleycomett/article/details/78638639
报错信息
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
报错原因调查
mysql里实际表名都是大写
尝试在entity上标记表名大写,实际测试无效,仍然找不到表
@Entity
@Data
@Table(name = "T_BASE_ORDER_PRINT_CLIENT")
public classMerchantPrinter{
@Id
@Column(name = "print_client_id")
private String id;
@Column(name = "merchant_id")
private String merchantId;
private String imei;
}
最终的解决方案
在spring jpa配置中增加physical-strategy配置解决问题
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://XXX:3306/dbname
username: root
password: *******
schema:
jpa:
hibernate:
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
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:物理命名策略,用于转换“逻辑名称”(隐式或显式)的表或列成一个物理名称
jpa遇到mysql表名大写怎么办_解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题...相关推荐
- mysql空表不导出问题_解决Oracle 11g空表无法导出的问题
Oracle 11g 新增参数deferred_segment_creation ,建库的时候默认值为true,意思是延时加载,当表中不存在数据的时候,不为这个表 Oracle 11g 新增参数def ...
- springboot2 多线程写入数据_解决SpringBoot项目使用多线程处理任务时无法通过@Autowired注入bean问题...
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 从MySQL中导出表中数据_用命令从mysql中导出/导入表结构及数据
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...
- mysql建表按 t分开_记一次MYSQL建表失败得bug
CREATE TABLE `SUIT` ( `id` INTEGER(11) NOT NULL AUTO_INCREMENT, `acId` INTEGER(11) NULL COMMENT '活动I ...
- mysql 9.0创建数据库_数据库基础学习——MySQL数据库知识小结(9)
1 MySQL 中的约束 1.1约束类型 • 非空约束(not null) • 唯一性约束(unique) • 主键约束(primary key) PK • 外键约束(foreign key) FK ...
- mysql面向用户是什么意思_原来大厂的MySQL面试会问这些问题!
1. 写出下面 2 个 PHP 操作 Mysql 函数的作用和区别(新浪网技术部) mysql_num_rows() mysql_affected_rows() 这两个函数都作用于 mysql_que ...
- mysql查询第八页_第八节:MySQL之Select指令详解和相关练习
一. 前言 该篇文章基于之前 https://www.cnblogs.com/yaopengfei/p/7182230.html 的基础上进行补充修改. 1. 简介 就查询而言,可以简单的分为: ...
- boot连接不上mysql数据库_【springboot连接 MYSQL数据库出问题_springboot】 | IT修真院·坑乎...
Spring: datebase: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/spring-c ...
- python django mysql写入中文乱码_解决django 向mysql中写入中文字符出错的问题
之前使用django+mysql建立的一个站点,发现向数据库中写入中文字符时总会报错,尝试了修改settings文件和更改数据表的字符集后仍不起作用.最后发现,在更改mysql的字符集后,需要重建数据 ...
最新文章
- Silverlight:SSL教程
- 常用排序算法对比(时间复杂度、稳定性)
- struts2获取服务器临时目录
- webService学习1:myeclipse解析wsdl
- 使用Java查询DynamoDB项
- SAP MM ‘Pricing Date Control‘字段的理解
- python应聘的职位_Python学到哪种程度可以去应聘相关的职位了?
- yum无法正常使用的解决办法
- 6.企业安全建设指南(金融行业安全架构与技术实践) --- 安全培训
- USB控制相关批处理
- axure产品原型图,元件库导入方法
- SCI期刊分区介绍 / 中国科学技术信息研究所SCI(E)论文期刊分区列表——2017年-2020年-文件分享
- 微信公众平台开发网页开发
- 数据库中的主键、超键、候选键、外键
- Mac更新git用户名和密码
- pyecharts js 地图无法显示 Map china not exists the geoJson of the map must be provided
- excel提取每一行或每一列的最后一个数据
- 安卓高通Diag命令解析
- 绝世唐门漫画的王秋儿
- 网上商品交易网站,怎样做到信息安全
热门文章
- python 画风场 scipy_科学网-Python: 扩展库SciPy-刘洋洋的博文
- access期刊可以重投几次_又被拒稿了?老司机带你一投即中
- 源码里查看Android版本
- android之broadcast发送广播
- 学霸孩子必备的三种思维,编程思维的速成方法
- 复数混频发射机原理与仿真
- Ubuntu上安装TensorFlow(python2.7版)
- 微服务部署:蓝绿部署、滚动部署、灰度发布等部署方案对比与总结
- java利用kafka生产消费消息
- 使用JSTL报错:items does not support runtime expre...