JPA 2.0& MySQL不尊重区分大小写的表名

时间:2013-03-06 12:28:15

标签: java mysql jpa glassfish eclipselink


我的耳朵项目有一个奇怪的问题: 我在我的实体类中添加了正确的注释:

@Entity
@Table(name = "PRODUCTS")

但是当我在glassfish 3.1.2.2上部署我的应用程序时,我发现JPA创建了带有小写字符的表

我正在使用EclipseLink 2.4.1

请帮助我。

2 个答案:

答案 0 :(得分:1)

我从Brian Vosburgh的评论中得到了解决方案: 在MySQL的Windows版本中,表的名称设置为小写。在linux上,默认情况下,此配置被禁用,JPA设置的表名称无需修改即可应用于MySQL。

要使其像Linux一样在Windows上运行,请添加以下行:

lower_case_table_names=0

感谢您的帮助,特别是Brian Vosburgh

答案 1 :(得分:0)

我找到了一个让一切变得与众不同的财产。 在EclipseLink向导(从表生成实体),第三页(Customize Defaults)中,我选中了“Always generate optional JPA annotations and DDL parameters”选项。 此选项在Entity类中编写以下注释:

@Table(name="TableName")

将使用正确的表格字母大小写。