Rumah > Java > javaTutorial > teks badan

Mengapa saya mendapat Ralat \'org.hibernate.MappingException: Entiti tidak diketahui\' dalam Penyepaduan Hibernate 5.0 dengan MySQL?

DDD
Lepaskan: 2024-11-01 21:13:02
asal
496 orang telah melayarinya

Why am I getting

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);
Salin selepas log masuk

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();
Salin selepas log masuk

2. Memuatkan Sifat daripada Sumber Luaran:

Jika anda mempunyai sifat yang disimpan di lokasi selain daripada hibernate.properties, ikut langkah berikut:

  • Muatkan sifat sebagai sumber :
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);  
Salin selepas log masuk
  • Muat sifat daripada laluan tertentu dalam sistem fail:
File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!