如何配置 Hibernate 5 以强制 Mysql 使用 Innodb 引擎创建表?

Posted

技术标签:

【中文标题】如何配置 Hibernate 5 以强制 Mysql 使用 Innodb 引擎创建表?【英文标题】:How can I configure Hibernate 5 to force Mysql create tables using Innodb engine? 【发布时间】:2018-03-26 13:52:18 【问题描述】:

花了几个小时解决这个问题,最后放弃了。 我需要我的应用程序来创建 Innodb 表,但默认情况下它们是在 Myisam 引擎中创建的。 我试过设置属性,

<property name="hibernate.dialect.storage_engine">innodb</property> 但它不起作用。

org.hibernate.dialect.mysql57InnoDBDialect - 已弃用

发现有org.hibernate.dialect.InnoDBStorageEngine类 但我无法在 hibernate.cfg.xml 中将其设置为 property name="hibernate.dialect",因为

org.hibernate.dialect.InnoDBStorageEngine' 不能分配给 'org.hibernate.dialect.Dialect

原因。你知道我可以在哪里设置 InnoDBStorageEngine 吗? 还是有另一种方法可以在创建表时强制 Hibernate 使用 innodb? 提前致谢

【问题讨论】:

Hibernate: Create Mysql InnoDB tables instead of MyISAM的可能重复 my.cnf 中的default_storage_engine 是什么?你用的是什么版本的 MySQL? Rick James,问题已解决,谢谢 【参考方案1】:

Hibernate 5.2 documentaton 建议在弃用说明中做什么

MySQL57InnoDBDialect - 已弃用

改用“hibernate.dialect.storage_engine=innodb”环境变量或JVM系统属性。

所以将org.hibernate.dialect.MySQL57Dialect 与此属性集结合使用。

【讨论】:

以上是关于如何配置 Hibernate 5 以强制 Mysql 使用 Innodb 引擎创建表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 maven 配置 hibernate-tools 以生成 hibernate.cfg.xml、*.hbm.xml、POJO 和 DAO

如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它

Hibernate 使用 InnoDB 而不是 MyISAM

Hibernate具体执行流程

如何在 Hibernate 4 中配置日志记录以使用 SLF4J

如何在 Hibernate 4 中配置日志记录以使用 SLF4J