Perbezaan Antara JPA dan Hibernate
JPA vs Hibernate
Hampir semua aplikasi perusahaan diperlukan untuk mengakses pangkalan data relasi secara berkala. Tetapi masalah yang dihadapi dengan teknologi terdahulu (seperti JDBC) adalah ketidakpadanan impedans (perbezaan antara teknologi berorientasikan objek dan relasi). Penyelesaian masalah ini diperkenalkan menerusi pengenalan lapisan abstrak yang dikenali sebagai lapisan Ketekunan, yang merangkumi akses pangkalan data dari logika perniagaan. JPA (Java Persistence API) adalah rangka kerja khusus untuk pengurusan data relasional (menggunakan lapisan ketekunan) dalam aplikasi Java. Terdapat banyak pelaksanaan vendor JPA yang digunakan dalam komuniti pemaju Jawa. Hibernate adalah pelaksanaan yang paling popular seperti JPA (DataNucleus, EclipseLink dan OpenJPA adalah beberapa yang lain). Versi JPA terbaru (JPA 2.0) disokong sepenuhnya oleh Hibernate 3. 5, yang dikeluarkan pada bulan Mac, 2010.
Apakah itu JPA?
JPA adalah kerangka untuk menguruskan data hubungan untuk Java. Ia boleh digunakan dengan aplikasi yang menggunakan JSE (Platform Java, Edisi Standard) atau JEE (Java Platform, Enterprise Edition). Versi terkininya ialah JPA 2. 0, yang dikeluarkan pada 10 Dis, 2009. JPA menggantikan EJB 2. 0 dan EJB 1. 1 biji entiti (yang dikritik tinggi kerana menjadi kelas berat oleh komuniti pemaju Jawa). Walaupun kacang entiti (dalam EJB) menyediakan objek ketekunan, banyak pemaju digunakan untuk menggunakan objek yang agak ringan yang ditawarkan oleh DAO (Object Access Objects) dan rangka kerja yang serupa. Akibatnya, JPA diperkenalkan, dan ia telah merangkumi banyak ciri-ciri yang rapi mengenai rangka kerja yang disebutkan di atas.
Kegigihan seperti yang diterangkan dalam JPA merangkumi API (ditakrifkan dalam ketekunan javax), JPQL (Platform Java, Enterprise Edition) dan metadata yang diperlukan untuk objek hubungan. Keadaan entiti persistence biasanya berterusan ke dalam jadual. Contoh entiti sesuai dengan baris jadual pangkalan data relasi. Metadata digunakan untuk menyatakan hubungan antara entiti. Anotasi atau fail deskriptor XML berasingan (digunakan dengan aplikasi) digunakan untuk menentukan metadata dalam kelas entiti. JPQL, yang serupa dengan pertanyaan SQL, digunakan untuk menanyakan entiti yang disimpan.
Apa itu Hibernate?
Hibernate adalah rangka kerja yang boleh digunakan untuk pemetaan objek-objek yang dimaksudkan untuk bahasa pengaturcaraan Java. Lebih khusus lagi, ia adalah perpustakaan pemetaan ORM (object-relational mapping) yang boleh digunakan untuk memetakan model hubungan objek ke model hubungan konvensional. Secara ringkas, ia mewujudkan pemetaan antara kelas Java dan jadual dalam pangkalan data hubungan, juga antara jenis Java hingga jenis data SQL. Hibernate juga boleh digunakan untuk pertanyaan dan pengambilan data dengan menjana panggilan SQL.Oleh itu, pengaturcara dibebaskan dari pengendalian manual set hasil dan menukarkan objek. Hibernate dikeluarkan sebagai rangka kerja bebas dan terbuka yang diedarkan di bawah lesen GNU. Pelaksanaan API JPA disediakan dalam versi Hibernate 3. 2 dan versi seterusnya. Gavin King adalah pengasas Hibernate.
Apakah perbezaan antara JPA dan Hibernate?
JPA adalah kerangka untuk mengurus data hubungan dalam aplikasi Java, sementara Hibernate adalah pelaksanaan khusus JPA (jadi ideal, JPA dan Hibernate tidak dapat dibandingkan secara langsung). Dengan kata lain, Hibernate adalah salah satu rangka kerja yang paling popular yang menerapkan JPA. Hibernate menerapkan JPA menerusi Hibernate Annotation dan EntityManager perpustakaan yang dilaksanakan di atas perpustakaan Core Hibernate. EntityManager dan Anotasi mengikuti hayat siklus Hibernate. Versi JPA terbaru (JPA 2.0) disokong sepenuhnya oleh Hibernate 3. 5. JPA mempunyai manfaat untuk mempunyai antara muka yang diseragamkan, jadi komuniti pemaju akan lebih mengenalinya daripada Hibernate. Sebaliknya, API Hibernate asli boleh dianggap lebih berkuasa kerana ciri-cirinya adalah superset dari JPA.