Hibernate:创建MySQL InnoDB表而不是MyISAM

58

我该如何让Hibernate(使用JPA)创建MySQL InnoDB表(而不是MyISAM)?我找到了一些解决方案,可以在使用Hibernate生成SQL文件来创建表时运行,但没有任何可以“即时”工作的解决方案。


你的意思是使用hbm2ddl配置设置吗? - skaffman
是的。显然,仅在脚本输出中设置“delimiter=type=InnoDB”有效。我尝试了“hibernate.hbm2ddl.auto=create”,但得到的是MyISAM表。 - David Tinker
已为此创建了一个Jira:HHH-8050 - Ondra Žižka
11个回答

-1

哦,天啊...抱歉各位...更多的谷歌搜索结果出现了:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="persistenceUnitName" value="MosJPA" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
        </bean>
    </property>
</bean>

所以,你不需要扩展或更改一个类...在回答之前,应该进一步阅读原始HibernateJpaVendorAdapter的源代码。这启示了我关于“databasePlatform”属性的信息...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接