JPA vs Hibernate
Hampir semua aplikasi perusahaan diperlukan untuk mengakses database relasional secara teratur. Tetapi masalah yang dihadapi dengan teknologi sebelumnya (seperti JDBC) adalah ketidakcocokan impedansi (perbedaan antara teknologi yang berorientasi objek dan relasional). Solusi untuk masalah ini diperkenalkan melalui pengenalan lapisan abstrak yang disebut Kegistence Layer, yang merangkum akses basis data dari logika bisnis. JPA (Java Persistence API) adalah kerangka kerja yang didedikasikan untuk pengelolaan data relasional (menggunakan lapisan persistence) dalam aplikasi Java. Ada banyak implementasi vendor JPA yang digunakan dalam komunitas pengembang Java. Hibernate adalah implementasi JPA yang paling populer (Dataucleus, Eclipselink dan OpenJPA adalah beberapa lainnya). Versi JPA terbaru (JPA 2.0) didukung sepenuhnya oleh Hibernate 3.5, yang dirilis pada bulan Maret 2010.
Apa itu JPA?
JPA adalah kerangka kerja untuk mengelola data relasional untuk Java. Ini dapat digunakan dengan aplikasi yang menggunakan JSE (Platform Java, Edisi Standar) atau JEE (Platform Java, edisi perusahaan). Versi saat ini adalah JPA 2.0, yang dirilis pada 10 Des, 2009. JPA menggantikan EJB 2.0 dan EJB 1.1 Entitas Kacang (yang sangat dikritik karena kelas berat oleh komunitas pengembang Java). Meskipun entitas kacang (dalam EJB) memberikan objek kegigihan, banyak pengembang digunakan untuk memanfaatkan objek yang relatif ringan yang ditawarkan oleh DAO (objek akses data) dan kerangka kerja serupa lainnya sebagai gantinya. Akibatnya, JPA diperkenalkan, dan menangkap banyak fitur rapi dari kerangka yang disebutkan di atas.
Kegigihan seperti yang dijelaskan dalam JPA mencakup API (didefinisikan dalam Javax.persistensi), jpql (platform java, edisi perusahaan) dan metadata yang diperlukan untuk objek relasional. Keadaan entitas kegigihan biasanya bertahan di tabel. Contoh suatu entitas sesuai dengan baris tabel database relasional. Metadata digunakan untuk mengekspresikan hubungan antar entitas. Anotasi atau file deskriptor XML terpisah (digunakan dengan aplikasi) digunakan untuk menentukan metadata di kelas entitas. JPQL, yang mirip dengan kueri SQL, digunakan untuk meminta entitas yang disimpan.
Apa itu Hibernate?
Hibernate adalah kerangka kerja yang dapat digunakan untuk pemetaan objek-relasional yang dimaksudkan untuk bahasa pemrograman Java. Lebih khusus lagi, ini adalah pustaka ORM (pemetaan objek-relasional) yang dapat digunakan untuk memetakan model objek-relasional ke dalam model relasional konvensional. Secara sederhana, ini menciptakan pemetaan antara kelas Java dan tabel dalam database relasional, juga antara Java hingga tipe data SQL. Hibernate juga dapat digunakan untuk permintaan data dan pengambilan dengan menghasilkan panggilan SQL. Oleh karena itu, programmer dibebaskan dari penanganan manual set hasil dan mengonversi objek. Hibernate dirilis sebagai kerangka kerja gratis dan open source yang didistribusikan di bawah lisensi GNU. Implementasi untuk JPA API disediakan di Hibernate 3.2 dan versi yang lebih baru. Gavin King adalah pendiri Hibernate.
Apa perbedaan antara JPA dan Hibernate?
JPA adalah kerangka kerja untuk mengelola data relasional dalam aplikasi Java, sementara Hibernate adalah implementasi spesifik JPA (jadi idealnya, JPA dan Hibernate tidak dapat dibandingkan secara langsung). Dengan kata lain, Hibernate adalah salah satu kerangka kerja paling populer yang mengimplementasikan JPA. Hibernate mengimplementasikan JPA melalui perpustakaan anotasi hibernate dan entityManager yang diimplementasikan di atas perpustakaan inti hibernate. Baik EntityManager dan Annotations mengikuti siklus hidup Hibernate. Versi JPA terbaru (JPA 2.0) didukung sepenuhnya oleh Hibernate 3.5. JPA memiliki manfaat memiliki antarmuka yang distandarisasi, sehingga komunitas pengembang akan lebih akrab dengannya daripada hibernasi. Di sisi lain, API Hibernate asli dapat dianggap lebih kuat karena fitur -fiturnya adalah superset dari JPA.