Hibernate 5: Menemui "org.hibernate.MappingException: Unknown entity" dalam Hibernate-MySQL Integration
Apabila cuba mengintegrasikan Hibernate 5.0 dengan pangkalan data MySQL, pengguna mungkin menghadapi mesej ralat "org.hibernate.MappingException: Entiti tidak diketahui." Isu ini kebanyakannya mempengaruhi versi Hibernate 5.0.0 dan 5.0.1, manakala versi terdahulu seperti 4.3.9 berfungsi dengan betul.
Untuk menangani masalah ini, adalah penting untuk memahami perubahan yang diperkenalkan dalam Hibernate 5. Dalam versi 4 dan sebelum ini, Hibernate sangat bergantung pada StandardServiceRegistryBuilder. Walau bagaimanapun, dalam Hibernate 5, konfigurasi процессе telah diubah.
Amalan Konfigurasi Salah:
Kod berikut, yang berfungsi dalam Hibernate 4.3.5 tetapi gagal dalam Hibernate 5, menunjukkan konfigurasi yang salah pendekatan:
Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings( configuration.getProperties()).build(); SessionFactory sf = configuration.buildSessionFactory(sr);
Dalam Hibernate 5, kaedah ini menyebabkan maklumat tentang pemetaan entiti hilang semasa konfigurasi.buildSessionFactory(sr).
Penyelesaian:
Terdapat dua penyelesaian yang berpotensi untuk isu ini:
1. Fail Konfigurasi Standard (hibernate.cfg.xml dan hibernate.properties):
Untuk fail konfigurasi standard, gunakan pendekatan mudah ini untuk mencipta kilang sesi:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
2. Memuatkan Sifat daripada Sumber Luaran:
Jika anda mempunyai sifat yang disimpan di lokasi selain daripada hibernate.properties, ikut langkah berikut:
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). configure().loadProperties("hibernate-h2.properties").build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
File propertiesPath = new File("some_path"); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). configure().loadProperties(propertiesPath).build(); SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
Adalah penting untuk ambil perhatian bahawa contoh yang disediakan dalam tutorial Hibernate 5 (1.1.6. Startup and helpers) adalah tidak betul dan tidak melakukan konfigurasi yang betul. Kaedah yang betul diberikan di atas.
Dengan melaksanakan penyelesaian ini, pengguna boleh menyepadukan Hibernate 5 dengan MySQL dengan berkesan dan menyelesaikan ralat "Entiti tidak diketahui".
Atas ialah kandungan terperinci Mengapa saya mendapat Ralat \"org.hibernate.MappingException: Entiti tidak diketahui\" dalam Penyepaduan Hibernate 5.0 dengan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!