Rumah > Java > javaTutorial > Hibernate 5: Mengapa Saya Mendapat Ralat \'org.hibernate.MappingException: Entiti Tidak Diketahui\' dan Bagaimana Saya Membetulkannya?

Hibernate 5: Mengapa Saya Mendapat Ralat \'org.hibernate.MappingException: Entiti Tidak Diketahui\' dan Bagaimana Saya Membetulkannya?

Barbara Streisand
Lepaskan: 2024-10-28 16:21:02
asal
324 orang telah melayarinya

  Hibernate 5: Why am I Getting the

Hibernate 5: Menyelesaikan "org.hibernate.MappingException: Ralat Entiti Tidak Diketahui"

Masalah:

Anda telah menemui ralat "org.hibernate.MappingException: Entiti tidak diketahui" semasa cuba mengintegrasikan Hibernate 5.0 dengan MySQL. Ralat ini berlaku dengan Hibernate versi 5.0.0 dan 5.0.1 tetapi tidak dengan Hibernate 4.3.9.

Punca:

Isu ini timbul disebabkan oleh perubahan dalam cara SessionFactory dicipta dengan Hibernate 5. Menggunakan kaedah Configuration().buildSessionFactory(sr) seperti dalam versi terdahulu Hibernate tidak lagi berfungsi, kerana ia membuang maklumat pemetaan.

Penyelesaian:

Untuk menyelesaikan ralat ini, terdapat dua pendekatan:

1. Konfigurasi Ringkas:

Untuk fail konfigurasi standard seperti hibernate.cfg.xml dan hibernate.properties, anda boleh mencipta SessionFactory tanpa menggunakan ServiceRegistry:

<code class="java">SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();</code>
Salin selepas log masuk

2. Menggunakan StandardServiceRegistryBuilder untuk Memuatkan Sifat:

Jika anda mempunyai sifat dalam fail selain hibernate.properties, anda boleh menggunakan StandardServiceRegistryBuilder untuk memuatkannya:

Memuatkan Sifat sebagai Sumber:

<code class="java">ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties("hibernate-h2.properties").build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>
Salin selepas log masuk

Memuatkan Sifat daripada Laluan Sistem Fail:

<code class="java">File propertiesPath = new File("some_path");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().
    configure().loadProperties(propertiesPath).build();
SessionFactory sf = new Configuration().buildSessionFactory(serviceRegistry);</code>
Salin selepas log masuk

Nota Tambahan:

  • Tutorial Hibernate 5 mengandungi pendekatan yang salah untuk mencipta SessionFactory. Ia menunjukkan kaedah new Configuration().configure().buildSessionFactory(new StandardServiceRegistryBuilder().build()), yang tidak mengkonfigurasi Hibernate dengan betul.
  • Isu ini menjejaskan versi Hibernate 5.0.0 dan 5.0.1 . Untuk Hibernate 5.1 dan lebih baru, kaedah konfigurasi asal Configuration().buildSessionFactory(sr) berfungsi seperti yang diharapkan.

Atas ialah kandungan terperinci Hibernate 5: Mengapa Saya Mendapat Ralat \'org.hibernate.MappingException: Entiti Tidak Diketahui\' dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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