首页  >  文章  >  Java  >  如何使用 MySQL 修复 Hibernate 5 中的'org.hibernate.MappingException:未知实体”错误?

如何使用 MySQL 修复 Hibernate 5 中的'org.hibernate.MappingException:未知实体”错误?

DDD
DDD原创
2024-11-02 15:47:29539浏览

How to Fix

Hibernate 5:解决“org.hibernate.MappingException:未知实体”错误

在将 Hibernate 5.0 与 MySQL 集成时,您可能会遇到错误“org.hibernate.MappingException:未知实体。”这个问题特别出现在 Hibernate 版本 5.0.0 和 5.0.1 中,而 Hibernate 4.3.9 运行时不会出现此问题。

错误原因

在 Hibernate 5 中,Hibernate 读取其配置的方式发生变化导致了此错误。具体来说,使用 StandardServiceRegistryBuilder 构造 SessionFactory 时,无法正确应用从 hibernate.cfg.xml 读取的配置信息。

解决方案

要解决此错误,有有几种需要考虑的方法:

使用基本配置方法

对于更简单的解决方案,请避免使用 StandardServiceRegistryBuilder,而是直接从 Configuration 对象创建会话工厂:

<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>

加载属性

如果您在 hibernate.properties 之外定义了其他属性,则可以使用 StandardServiceRegistryBuilder 加载它们:

<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties("hibernate-h2.properties")
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>

使用 Fluent-Hibernate

您还可以利用 Fluent-hibernate 库获得更方便的方法,如 GitHub 项目“fluent-hibernate-mysql”中所示。

其他注意事项

请注意,第 1.1.6 节中的 Hibernate 5 教程示例是不正确的。构建 SessionFactory 时无法加载正确的配置,导致映射问题。

以上是如何使用 MySQL 修复 Hibernate 5 中的'org.hibernate.MappingException:未知实体”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn