Home  >  Article  >  Java  >  Hibernate 5: Why am I Getting the \"org.hibernate.MappingException: Unknown Entity\" Error and How Do I Fix It?

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

Barbara Streisand
Barbara StreisandOriginal
2024-10-28 16:21:02143browse

  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>

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>

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>

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!

Statement:
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