gpt4 book ai didi

mysql - Hibernate MySQLMyISAMDialect 不起作用?

转载 作者:行者123 更新时间:2023-11-29 23:19:42 25 4
gpt4 key购买 nike

我正在使用 hibernate 4.2.1 和 MySQL 5.5 。

在 persistence.xml 我有这个:

<!-- ... -->
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLMyISAMDialect" />

</properties>

但是当我运行我的项目时,我的数据库不包含任何表!

有人知道吗?谢谢

最佳答案

从您的配置中完全删除方言行。

假设您提供了正确的用户名/密码,Hibernate 可以根据底层数据库元数据检测要使用的方言。我从来没有遇到过 Hibernate 自动检测我的数据库版本的问题。它对于 MySQL 特别有用,因为 MySQL 可以使用不同版本的方言。

如果您看到以下异常

org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set

这意味着您的用户名/密码不正确,Hibernate 无法连接到数据库,无法实际读取元数据来选择它自己的方言。

我发现使用 SQL 脚本设置数据库表,然后让 Hibernate 来验证您的架构会更容易。不建议在生产环境中让 Hibernate 生成任何数据库结构(使用 create-update 或仅使用 update),因为您失去了对数据库设置方式的控制。

TL;DR:让 Hibernate 选择它自己的方言。这将为您节省数小时的麻烦。

关于mysql - Hibernate MySQLMyISAMDialect 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27432130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com