我制作了一个 Java EE 应用程序,并指定数据库应该是 myISAM 存储引擎:
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLMyISAMDialect" />
</properties>
当我使用此配置运行我的应用程序时,不会在数据库中创建任何表。但是当我使用以下代码时:
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
</properties>
..应用程序创建表,但它们在 innoDB 存储中。但我希望它在 myISAM 中,因为如果我保留当前配置,当我想与数据库进行事务时会生成此错误。
#1452 - cannot add or update a child row a foreign key constraint fails
我正在使用 Hibernate 4.2.1 和 MySQL v 5.5.34
我在这个链接上使用了解决方案,
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="mypackage.MySQL5MyISAMDialect" />
</properties>
但它没有帮助,因为当我想使用它时,我收到一个错误,告诉我mypackage.MySQL5MyISAMDialect
找不到该类。