Rumah >pangkalan data >tutorial mysql >Hibernate 5: Bagaimana untuk Menyelesaikan 'org.hibernate.MappingException: Entiti tidak diketahui'?

Hibernate 5: Bagaimana untuk Menyelesaikan 'org.hibernate.MappingException: Entiti tidak diketahui'?

Patricia Arquette
Patricia Arquetteasal
2024-12-23 10:04:43845semak imbas

Hibernate 5: How to Solve

Hibernate 5: Menyelesaikan "org.hibernate.MappingException: Unknown entity" Isu

The "org.hibernate.MappingException: Unknown entity" ralat yang biasa dihadapi apabila menyepadukan Hibernate 5 dengan sistem pangkalan data berpunca daripada isu konfigurasi. Ini berlaku khusus untuk Hibernate versi 5.0.0 dan 5.0.1.

Kecacatan Konfigurasi

Masalahnya terletak dalam proses penciptaan sessionFactory. Coretan kod berikut daripada kod sampel yang disediakan menggambarkan isu:

SessionFactory sf = configuration.buildSessionFactory(sr);

Apabila cuba membina kilang sesi menggunakan kaedah buildSessionFactory semasa menghantar dalam ServiceRegistry, Hibernate 5 kehilangan jejak maklumat pemetaan yang dimuatkan sebelum ini melalui konfigurasi kaedah.

Penyelesaian

Untuk membetulkan isu ini, pendekatan alternatif untuk mencipta kilang sesi boleh digunakan, bergantung pada konfigurasi yang digunakan.

Memuatkan Sifat

Untuk fail konfigurasi standard (hibernate.cfg.xml dan hibernate.properties), kilang sesi boleh dibuat tanpa menggunakan ServiceRegistry seperti yang dilihat di bawah:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Sebagai alternatif, jika sifat disimpan dalam fail selain hibernate.properties, ia boleh dimuatkan menggunakan StandardServiceRegistryBuilder :

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

Begitu juga, sifat juga boleh dimuatkan dari laluan tertentu dalam fail sistem:

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

Atas ialah kandungan terperinci Hibernate 5: Bagaimana untuk Menyelesaikan 'org.hibernate.MappingException: Entiti tidak diketahui'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn