我面临的问题是Windows和Linux之间hibernate生成的架构名称(例如表名称)不同。在Windows上,所有表名都是小写字母(例如)account,而在Linux下创建的表名是驼峰字母(例如)Account。
account
Account
在两个系统上,我都使用相同版本的MySQL 5和以下hibernate配置:
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop> <prop key="hibernate.jdbc.batch_size">0</prop> <prop key="hibernate.bytecode.provider">cglib</prop> <prop key="hibernate.hbm2ddl.auto">update</prop>
这里会发生什么?基本上,我可以忍受这个奇怪的问题,但是有时令人讨厌的是,我不能仅将表从Windows IDE导出到Linux环境。
您可能想要将属性设置hibernate.ejb.naming_strategy为org.hibernate.cfg.ImprovedNamingStrategy或实现自己的命名策略类。
hibernate.ejb.naming_strategy
org.hibernate.cfg.ImprovedNamingStrategy