在Play Framework中强制使用小写表名

时间:2012-04-13 14:26:36

标签: mysql jpa playframework

在这个项目中,我在Windows上开发并在Linux上部署,并使用mysql作为数据库。

由于文件系统的性质,表名(以及更多,我猜)在Windows上不区分大小写,在* nix [Ref]

上敏感

问题是,默认情况下play / jpa使用与表的java模型类相同的名称(因此它是大写的,例如UserProfile)。当我转储我的Windows mysql数据库时,它会转储小写的表名。

这意味着由于区分大小写,我无法在Linux中导入它们。

有没有办法让Play / JPA始终为模型使用小写名称? 或者我必须在任何单个模型上设置@Table(name="userprofile")注释吗?

1 个答案:

答案 0 :(得分:4)

您需要为hibernate使用不同的命名策略。有一个改进的NS可用于休眠

http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/cfg/ImprovedNamingStrategy.html

您只需将此行添加到application.conf

即可
hibernate.ejb.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy

同时查看this帖子和this SO问题