Perbedaan Antara JPA dan Hibernate

Anonim

JPA vs Hibernate

Hampir semua aplikasi perusahaan diharuskan mengakses basis data relasional secara teratur. Tapi masalah yang dihadapi dengan teknologi sebelumnya (seperti JDBC) adalah ketidakcocokan impedansi (perbedaan antara teknologi berorientasi obyek dan relasional). Solusi untuk masalah ini diperkenalkan melalui pengenalan lapisan abstrak yang disebut Lapisan Ketekunan, yang merangkum akses basis data dari logika bisnis. JPA (Java Persistence API) adalah kerangka kerja yang didedikasikan untuk pengelolaan data relasional (menggunakan lapisan ketekunan) dalam aplikasi Java. Ada banyak implementasi vendor JPA yang digunakan dalam komunitas pengembang Java. Hibernate adalah implementasi JPA yang paling populer (DataNucleus, 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 bisa digunakan dengan aplikasi yang memanfaatkan JSE (Java Platform, Standard Edition) atau JEE (Java Platform, Enterprise Edition). Versi saat ini adalah JPA 2. 0, yang dirilis pada tanggal 10 Desember 2009. JPA mengganti EJB 2. 0 dan EJB 1. 1 biji entitas (yang sangat dikritik karena menjadi kelas berat oleh komunitas pengembang Java). Meskipun entitas kacang (dalam EJB) menyediakan objek ketekunan, banyak pengembang menggunakannya untuk menggunakan objek yang relatif ringan yang ditawarkan oleh DAO (Data Access Objects) dan kerangka kerja sejenis lainnya. Akibatnya, JPA diperkenalkan, dan menangkap banyak fitur rapi dari kerangka kerja yang disebutkan di atas.

Kegigihan seperti yang dijelaskan di JPA mencakup API (didefinisikan dalam ketekunan javax), JPQL (Java Platform, Enterprise Edition) dan metadata yang diperlukan untuk objek relasional. Keadaan entitas ketekunan biasanya bertahan di meja. Contoh entitas sesuai dengan baris tabel database relasional. Metadata digunakan untuk mengekspresikan hubungan antar entitas. Anotasi atau file deskriptif XML terpisah (disebarkan dengan aplikasi) digunakan untuk menentukan metadata di kelas entitas. JPQL, yang mirip dengan query SQL, digunakan untuk query entitas yang tersimpan.

Apa itu Hibernate?

Hibernate adalah framework yang bisa digunakan untuk pemetaan object-relational yang ditujukan untuk bahasa pemrograman Java. Lebih khusus lagi, perpustakaan ini adalah pemetaan ORM (object-relational mapping) yang dapat digunakan untuk memetakan model relasional-objek ke model relasional konvensional. Secara sederhana, ini menciptakan pemetaan antara kelas dan tabel Java di database relasional, juga antara Java ke tipe data SQL. Hibernate juga dapat digunakan untuk query data dan retrieving dengan menghasilkan SQL calls.Oleh karena itu, programmer merasa lega dari penanganan manual set hasil dan konversi objek. Hibernate dilepaskan sebagai kerangka sumber bebas dan terbuka 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 di aplikasi Java, sedangkan Hibernate adalah implementasi JPA yang spesifik (sangat ideal, JPA dan Hibernate tidak dapat dibandingkan secara langsung). Dengan kata lain, Hibernate adalah salah satu framework yang paling populer yang mengimplementasikan JPA. Hibernate mengimplementasikan JPA melalui Hibernate Annotation dan EntityManager libraries yang diimplementasikan di atas perpustakaan Hibernate Core. EntityManager dan Anotasi mengikuti siklus hidup Hibernate. Versi JPA terbaru (JPA 2. 0) didukung sepenuhnya oleh Hibernate 3. 5. JPA memiliki keunggulan memiliki antarmuka yang distandarisasi, sehingga komunitas pengembang akan lebih mengenalnya daripada Hibernate. Di sisi lain, API Hibernate asli dapat dianggap lebih hebat karena fiturnya adalah superset dari JPA.