Home > Java > javaTutorial > body text

Hibernate 5: Why am I Getting the \'org.hibernate.MappingException: Unknown Entity\' Error and How Do I Fix It?

Barbara Streisand
Release: 2024-10-28 16:21:02
Original
153 people have browsed it

  Hibernate 5: Why am I Getting the

Hibernate 5: Resolving "org.hibernate.MappingException: Unknown Entity" Error

Problem:

You've encountered the "org.hibernate.MappingException: Unknown entity" error while attempting to integrate Hibernate 5.0 with MySQL. This error occurs with Hibernate versions 5.0.0 and 5.0.1 but not with Hibernate 4.3.9.

Cause:

The issue arises due to a change in the way SessionFactory is created with Hibernate 5. Using the Configuration().buildSessionFactory(sr) method as in earlier versions of Hibernate no longer works, as it discards mapping information.

Solution:

To resolve this error, there are two approaches:

1. Simplified Configuration:

For standard configuration files like hibernate.cfg.xml and hibernate.properties, you can create SessionFactory without using ServiceRegistry:

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

2. Using StandardServiceRegistryBuilder for Loading Properties:

If you have properties in files other than hibernate.properties, you can use StandardServiceRegistryBuilder to load them:

Loading Properties as a Resource:

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

Loading Properties from a File System Path:

<code class="java">File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>
Copy after login

Additional Notes:

  • The Hibernate 5 tutorial contains an incorrect approach for creating SessionFactory. It demonstrates the method new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().build()), which does not properly configure Hibernate.
  • This issue affects Hibernate versions 5.0.0 and 5.0.1. For Hibernate 5.1 and later, the original configuration method Configuration().buildSessionFactory(sr) works as expected.

The above is the detailed content of Hibernate 5: Why am I Getting the \'org.hibernate.MappingException: Unknown Entity\' Error and How Do I Fix It?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!