hibernate.dialect.storage_engine 属性放置在哪里

西蜀石*_*蜀石兰 3 java mysql hibernate

我用来MySQL5Dialect替换,MySQL5InnoDBDialect因为旧的已被弃用。

\n\n
package org.hibernate.dialect;\n\n/** A Dialect for MySQL 5 using InnoDB engine\n *\n * @author Gavin King,\n * @author Scott Marlow\n * @deprecated Use "hibernate.dialect.storage_engine=innodb" \nenvironment variable or JVM system property instead.\n */\n@Deprecated\npublic class MySQL5InnoDBDialect extends MySQL5Dialect {\n\n@Override\nprotected MySQLStorageEngine getDefaultMySQLStorageEngine() {\n    return InnoDBStorageEngine.INSTANCE;\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的 hibernate.cfg.xml 是\xef\xbc\x9a

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<!DOCTYPE hibernate-configuration PUBLIC  "-//Hibernate/Hibernate \nConfiguration DTD 3.0//EN"\n    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">\n<hibernate-configuration>\n  <session-factory>\n    <property name="hibernate.show_sql">true</property>\n    <property name="hibernate.id.new_generator_mappings">false</property>\n    <property name="hibernate.hbm2ddl.auto">create</property>\n    <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>\n    <property name="hibernate.dialect.storage_engine">innodb</property>\n    <property name="hibernate.cache.use_second_level_cache">false</property>\n  </session-factory>\n</hibernate-configuration>\n
Run Code Online (Sandbox Code Playgroud)\n\n

遗憾的是,Hibernate 仍然使用engine=MyISAM!

\n\n

我应该把财产放在哪里,但我无法从官方页面hibernate.dialect.storage_engine找到所有财产!hibernate.cfg.xml令人不安!

\n\n

任何有效的链接将不胜感激。

\n

Mac*_*ski 5

根据这个HHH Issue,如果您想坚持使用MySQL5Dialect.

或者,您可以切换到 MySQL55Dialect,innoDb默认情况下:

public class MySQL55Dialect extends MySQL5Dialect {

        @Override
        protected MySQLStorageEngine getDefaultMySQLStorageEngine() {
                return InnoDBStorageEngine.INSTANCE;
        }
}
Run Code Online (Sandbox Code Playgroud)