Home > Java > javaTutorial > body text

Why am I getting \'org.hibernate.MappingException: Unknown entity\' Error in Hibernate 5.0 Integration with MySQL?

DDD
Release: 2024-11-01 21:13:02
Original
496 people have browsed it

Why am I getting

Hibernate 5: Encountering "org.hibernate.MappingException: Unknown entity" in Hibernate-MySQL Integration

When attempting to integrate Hibernate 5.0 with a MySQL database, users may encounter the error message "org.hibernate.MappingException: Unknown entity." This issue predominantly affects Hibernate versions 5.0.0 and 5.0.1, while earlier versions such as 4.3.9 function correctly.

To address this problem, it's essential to understand the changes introduced in Hibernate 5. In versions 4 and earlier, Hibernate heavily relied on StandardServiceRegistryBuilder. However, in Hibernate 5, the configuration процессе has been altered.

Incorrect Configuration Practice:

The following code, which works in Hibernate 4.3.5 but fails in Hibernate 5, exemplifies the incorrect configuration approach:

Configuration configuration = new Configuration();
configuration.configure();

ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(
    configuration.getProperties()).build();

SessionFactory sf = configuration.buildSessionFactory(sr);
Copy after login

In Hibernate 5, this method causes information about entity mappings to be lost during configuration.buildSessionFactory(sr).

Solution:

There are two potential solutions to this issue:

1. Standard Configuration Files (hibernate.cfg.xml and hibernate.properties):

For standard configuration files, use this straightforward approach to create the session factory:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Copy after login

2. Loading Properties from External Sources:

If you have properties stored in a location other than hibernate.properties, follow these steps:

  • Load properties as a resource:
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);  
Copy after login
  • Load properties from a specific path in the file system:
File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
Copy after login

It's important to note that the example provided in the Hibernate 5 tutorial (1.1.6. Startup and helpers) is incorrect and does not perform proper configuration. The correct method is given above.

By implementing these solutions, users can effectively integrate Hibernate 5 with MySQL and resolve the "Unknown entity" error.

The above is the detailed content of Why am I getting \'org.hibernate.MappingException: Unknown entity\' Error in Hibernate 5.0 Integration with MySQL?. 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
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!