Kesalahan Hibernate “Tidak Ada Penyedia Persistensi untuk EntityManager”

1. Perkenalan

Dalam tutorial ini, kita akan melihat bagaimana mengatasi kesalahan Hibernate yang umum - “Tidak ada penyedia persistensi untuk EntityManager”. Sederhananya, penyedia persistensi mengacu pada implementasi JPA spesifik yang digunakan dalam aplikasi kita untuk mempertahankan objek ke database.

Untuk mempelajari lebih lanjut tentang JPA dan implementasinya, kita dapat merujuk ke artikel kami tentang perbedaan antara JPA, Hibernate, dan EclipseLink.

2. Apa Penyebab Error tersebut

Kita akan melihat error tersebut jika aplikasi tidak mengetahui penyedia persistensi mana yang harus digunakan .

Ini terjadi ketika penyedia persistensi tidak disebutkan dalam file persistence.xml atau dikonfigurasi di kelas implementasi PersistenceUnitInfo .

3. Memperbaiki Kesalahan

Untuk memperbaiki kesalahan ini, kita hanya perlu menentukan penyedia persistensi di file persistence.xml :

org.hibernate.jpa.HibernatePersistenceProvider

Atau, jika kami menggunakan Hibernate versi 4.2 atau lebih lama :

org.hibernate.ejb.HibernatePersistence

Jika kita telah mengimplementasikan antarmuka PersistenceUnitInfo di aplikasi kita, kita juga harus mengganti

Metode getPersistenceProviderClassName () :

@Override public String getPersistenceProviderClassName() { return HibernatePersistenceProvider.class.getName(); }

Untuk memastikan semua stoples Hibernate yang diperlukan tersedia, penting untuk menambahkan dependensi hibernate-core di file pom.xml :

 org.hibernate hibernate-core ${hibernate.version} 

4. Kesimpulan

Untuk meringkas, kita telah melihat kemungkinan penyebab kesalahan Hibernate "Tidak ada penyedia persistensi untuk EntityManager" dan berbagai cara untuk mengatasinya.

Seperti biasa, contoh proyek Hibernasi tersedia di GitHub.