我们使用MyISAM方言org.hibernate.dialect.MySQLMyISAMDialect
在MySQL 5.5数据库上使用3.6.9.Final
hibernate提供程序基于JPA2自动生成DDL文件。
The create SQL file gets generated as
CREATE TABLE t (i INT) type = MYISAM;
instead of
CREATE TABLE t (i INT) ENGINE = MYISAM;
导致表创建失败。
注意:这在5.1及更低版本中运行良好。我应该使用什么样的hibernate提供程序来解决这个问题。
答案 0 :(得分:3)
它破了,MySQL很久以前就不再支持弃用的“type =”了。在MyISAM的情况下,Hibernate没有包含工作实现。对于InnoDB,有单独的实现(MySQL5InnoDBDialect)。
您必须自己实施,或者只选择现有的实施,例如:http://code.google.com/p/snofyre/source/browse/trunk/snomed-osgi/uk.nhs.cfh.dsp.snomed.persistence/src/main/java/uk/nhs/cfh/dsp/snomed/persistence/orm/MySQL5MyISAMDialect.java
我想使用InnoDB不是你的选择吗?特别是由于缺乏交易,MyISAM与JPA不太合适。