Hibernate MappingException: Entiti Tidak Diketahui dalam Hibernate 5
Apabila menyepadukan Hibernate 5.0 dengan MySQL, anda mungkin menghadapi ralat "org.hibernate.MappingException : Entiti tidak diketahui." Isu ini lazim dalam versi 5.0.0 dan 5.0.1, tetapi tidak dalam Hibernate 4.3.9.
Diagnosis
Isu ini berpunca daripada ketidakpadanan dalam Hibernate 5 kod konfigurasi. Serpihan kod berikut daripada kelas "HibernateMain.java" anda bermasalah:
Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); SessionFactory sf = configuration.buildSessionFactory(sr);
Dalam Hibernate 5, menggunakan configuration.buildSessionFactory(sr) membawa kepada kehilangan maklumat pemetaan yang diperoleh semasa configuration.configure().
Penyelesaian
Untuk menyelesaikan isu ini, gunakan pendekatan berikut tanpa ServiceRegistry:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Pilihan Pemuatan Tambahan untuk Hartanah
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);
Kesimpulan
Elakkan menggunakan kaedah konfigurasi yang salah yang dibentangkan dalam tutorial Hibernate 5 1.1.6 . Gunakan penyelesaian yang dinyatakan di atas untuk membetulkan isu "Entiti tidak diketahui" dan mewujudkan penyepaduan Hibernate 5 yang berjaya dengan MySQL.
Atas ialah kandungan terperinci Mengapa Hibernate 5.0 Membuang 'Entiti Tidak Diketahui' MappingException, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!