首页 > 数据库 > mysql教程 > Hibernate 5:如何解决'org.hibernate.MappingException:未知实体”?

Hibernate 5:如何解决'org.hibernate.MappingException:未知实体”?

Patricia Arquette
发布: 2024-12-23 10:04:43
原创
846 人浏览过

Hibernate 5: How to Solve

Hibernate 5:解决“org.hibernate.MappingException:未知实体”问题

“org.hibernate.MappingException:未知实体”将 Hibernate 5 与数据库系统集成时经常遇到的错误源于配置问题。这种情况专门针对 Hibernate 版本 5.0.0 和 5.0.1。

配置缺陷

问题出在 sessionFactory 创建过程中。提供的示例代码中的以下代码片段说明了该问题:

SessionFactory sf = configuration.buildSessionFactory(sr);
登录后复制

在传入 ServiceRegistry 时尝试使用 buildSessionFactory 方法构建会话工厂时,Hibernate 5 会丢失之前通过以下方式加载的映射信息:配置方法。

解决方案

纠正此问题问题,可以采用创建会话工厂的替代方法,具体取决于所使用的配置。

加载属性

对于标准配置文件(hibernate.cfg.xml和 hibernate.properties),可以在不使用 ServiceRegistry 的情况下创建会话工厂,如图所示下面:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
登录后复制

或者,如果属性存储在 hibernate.properties 之外的文件中,则可以使用 StandardServiceRegistryBuilder 加载它们:

ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties("hibernate-h2.properties")
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
登录后复制

同样,也可以加载属性从文件系统中的特定路径:

File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    .configure()
    .loadProperties(propertiesPath)
    .build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
登录后复制

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板