2017-10-14 111 views
0

花了好幾個小時解決了這個問題,終於放棄了。 我需要我的應用程序來創建Innodb表,但默認情況下它們是在Myisam引擎中創建的。 我試圖設置屬性,如何配置Hibernate 5強制Mysql使用Innodb引擎創建表?

<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? 在此先感謝

+0

可能重複[Hibernate:創建Mysql InnoDB表而不是MyISAM](https://stackoverflow.com/questions/1459265/hibernate-create-mysql-innodb-tables-instead-of-myisam) –

+0

什麼是' default_storage_engine'在my.cnf中?你使用的是什麼版本的MySQL? –

+0

裏克詹姆斯,問題解決了,謝謝 – Alex

回答

0

Hibernate 5.2 documentaton暗示什麼,在棄用說明做

MySQL57InnoDBDialect - 棄用

使用 「hibernate.dialect.storage_engine = InnoDB的」 環境變量或者JVM系統屬性。

因此,使用org.hibernate.dialect.MySQL57Dialect與此屬性集組合使用。

相關問題