如何配置 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