我的耳朵项目有一个奇怪的问题:我在实体类上放置了正确的注释:
@Entity
@Table(name = "PRODUCTS")
但是当我在 glassfish 3.1.2.2 上部署我的应用程序时,我发现 JPA 已经创建了带有小写字符的表
我正在使用 EclipseLink 2.4.1
请帮我。
我的耳朵项目有一个奇怪的问题:我在实体类上放置了正确的注释:
@Entity
@Table(name = "PRODUCTS")
但是当我在 glassfish 3.1.2.2 上部署我的应用程序时,我发现 JPA 已经创建了带有小写字符的表
我正在使用 EclipseLink 2.4.1
请帮我。
我从 Brian Vosburgh 的评论中得到了解决方案:在 Windows 版本的 MySQL 中,表的名称设置为小写。在linux上,默认情况下,这个配置是禁用的,JPA设置的表名不加修改地应用到MySQL上。
要使其像 linux 一样在 windows 上运行,请添加以下行:
lower_case_table_names=0
感谢您的帮助,特别是Brian Vosburgh
我找到了一个让一切变得不同的房产。在 EclipseLink 向导(从表生成实体)的第三页(自定义默认值)中,我选中了“始终生成可选的 JPA 注释和 DDL 参数”选项。此选项在类中写入以下注释Entity
:
@Table(name="TableName")
将使用正确的表名字母大小写。