JPA、EclipseLink和大小写敏感的MySQL之间的问题

5

我的应用在Windows环境下运行良好,但是当我尝试在Linux服务器上进行测试时,遇到了JPA EclipseLink生成的SQL问题。我把所有的表名都创建为小写,但是当我查看日志时,发现所有表名都变成了大写。

INSERT INTO PFC(ID, ALUMN,PROPOSED_ID) VALUES (?, ?, ?)

混合与其他小写字母序列类似的内容。
INSERT INTO buzonmensajes (mensajeid, buzonid) VALUES (?, ?)
        bind => [27, 1]

当然,一切都会出现问题,服务器找不到大写的表等等...

我们使用orm.xml来定义所有的数据库操作(查询、实体等),而且所有内容都是小写的...

我知道有一个Mysql参数可以改变这些行为,但不幸的是我没有权限更改它。我的问题是我需要告诉JPA将所有的查询和插入语句中的表名都以小写形式创建。

1个回答

5
问题可能是由于您允许EclipseLink默认一些名称而引起的。如果您使用数据库大小写指定名称,则EclipseLink应该默认使用这些大小写。
如果发现这种方法不起作用,您可以始终使用“\”模式使用限定标识符来强制执行大小写:@Table(“\”pfc \””),但这不是必需的。
您使用的EclipseLink版本是什么?

1
嗨,戈登。谢谢你的帮助。我没有注释,我在 orm.xml 中配置了所有的实体,但是你是对的,我添加了标记< table/> 来定义表名,问题得到解决了,就像这样: <entity name="Employee" class="org.acme.Employee" access="FIELD"> <table name="employee"/> </entity> - Aitor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接