Rumah > Java > javaTutorial > teks badan

Mengapakah saya Mendapat \'org.hibernate.MappingException: Entiti Tidak Diketahui\' dalam Hibernate 5 dengan MySQL?

Mary-Kate Olsen
Lepaskan: 2024-10-29 16:35:02
asal
1023 orang telah melayarinya

Why am I Getting

Hibernate 5: Memahami "org.hibernate.MappingException: Unknown Entiti"

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.

Analisis Masalah

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

Kod ini tidak mengkonfigurasi pemetaan entiti dengan betul.

Penyelesaian: Memuatkan Pemetaan Entiti

Untuk menyelesaikan isu, anda boleh memuatkan pemetaan entiti dengan betul menggunakan salah satu kaedah berikut:

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

    Ini memerlukan fail hibernate-h2.properties berada dalam classpath.

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

Kesimpulan

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan