【发布时间】:2011-09-07 07:17:24
【问题描述】:
我面临的问题是休眠生成的模式名称(例如表名)在 Windows 和 Linux 之间不同。在 Windows 上,所有表名都是小写的,例如account,而在 Linux 下创建的表名是驼峰式的,例如Account.
在两个系统上,我使用相同版本的 MySQL 5 和以下休眠配置:
<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 为你选择一个名称?我很确定会发生这种情况,因为 windows 文件系统不区分大小写,而 linux 是。这会影响 mysql,因为每个表名最终都是一个文件。例如,在 linux 中,您可以在 schema 中包含以下所有表:test、Test 和 tEst,而在 windows 中会导致错误(表已存在)。
-
我将表的命名留给 Hibernate
标签: mysql hibernate jpa jakarta-ee