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 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!