Hibernate 5: Menyelesaikan "org.hibernate.MappingException: Ralat Entiti Tidak Diketahui"
Masalah:
Anda telah menemui ralat "org.hibernate.MappingException: Entiti tidak diketahui" semasa cuba mengintegrasikan Hibernate 5.0 dengan MySQL. Ralat ini berlaku dengan Hibernate versi 5.0.0 dan 5.0.1 tetapi tidak dengan Hibernate 4.3.9.
Punca:
Isu ini timbul disebabkan oleh perubahan dalam cara SessionFactory dicipta dengan Hibernate 5. Menggunakan kaedah Configuration().buildSessionFactory(sr) seperti dalam versi terdahulu Hibernate tidak lagi berfungsi, kerana ia membuang maklumat pemetaan.
Penyelesaian:
Untuk menyelesaikan ralat ini, terdapat dua pendekatan:
1. Konfigurasi Ringkas:
Untuk fail konfigurasi standard seperti hibernate.cfg.xml dan hibernate.properties, anda boleh mencipta SessionFactory tanpa menggunakan ServiceRegistry:
<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>
2. Menggunakan StandardServiceRegistryBuilder untuk Memuatkan Sifat:
Jika anda mempunyai sifat dalam fail selain hibernate.properties, anda boleh menggunakan StandardServiceRegistryBuilder untuk memuatkannya:
Memuatkan Sifat sebagai Sumber:
<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). configure().loadProperties("hibernate-h2.properties").build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>
Memuatkan Sifat daripada Laluan Sistem Fail:
<code class="java">File propertiesPath = new File("some_path"); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). configure().loadProperties(propertiesPath).build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>
Nota Tambahan:
Atas ialah kandungan terperinci Hibernate 5: Mengapa Saya Mendapat Ralat \'org.hibernate.MappingException: Entiti Tidak Diketahui\' dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!