Apabila menyepadukan Hibernate 5.0 dengan MySQL, pembangun mungkin menghadapi mesej ralat "org.hibernate. MappingException: Entiti tidak diketahui." Isu ini timbul dalam Hibernate 5.0.0 dan 5.0.1 tetapi tidak dalam Hibernate 4.3.9.
Untuk menyelesaikan ralat ini, adalah penting untuk memahami sebab ia berlaku. Dalam Hibernate 5, tidak seperti versi sebelumnya, proses konfigurasi lalai tidak memuatkan pemetaan entiti secara automatik. Ini bermakna apabila konfigurasi.buildSessionFactory(sr) dipanggil, ia tidak mempunyai maklumat tentang entiti yang dipetakan.
Tutorial Hibernate 5 Salah:
Tutorial Hibernate 5 menyediakan tutorial yang salah sampel kod yang membawa kepada ralat ini:
return new Configuration().configure().buildSessionFactory( new StandardServiceRegistryBuilder().build() );
Kod ini tidak mengkonfigurasi pemetaan entiti dengan betul.
Untuk menyelesaikan isu, anda boleh memuatkan pemetaan entiti dengan betul menggunakan salah satu kaedah berikut:
Fail Konfigurasi Standard: Gunakan pendekatan yang dipermudahkan jika anda mempunyai fail konfigurasi standard hibernate.cfg.xml dan hibernate.properties:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Muat Sifat: Untuk fail harta lain, gunakan StandardServiceRegistryBuilder untuk memuatkan sifat:
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .configure().loadProperties("hibernate-h2.properties").build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
Ini memerlukan fail hibernate-h2.properties berada dalam classpath.
Muat Sifat daripada Laluan: Gunakan kaedah ini untuk memuatkan sifat daripada laluan fail tertentu:
File propertiesPath = new File("some_path"); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() .configure().loadProperties(propertiesPath).build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
Dengan menggunakan salah satu daripada penyelesaian ini untuk memuatkan pemetaan entiti, anda boleh menyelesaikan ralat "Entiti Tidak Diketahui" apabila menyepadukan Hibernate 5.0 dengan MySQL. Ingat bahawa sampel kod yang salah dalam tutorial Hibernate 5 harus dielakkan.
Atas ialah kandungan terperinci Mengapakah saya Mendapat \'org.hibernate.MappingException: Entiti Tidak Diketahui\' dalam Hibernate 5 dengan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!