Perbezaan antara JPA dan Hibernate

Perbezaan antara JPA dan Hibernate

JPA vs Hibernate

Hampir semua aplikasi perusahaan diperlukan untuk mengakses pangkalan data hubungan dengan kerap. Tetapi masalah yang dihadapi dengan teknologi terdahulu (seperti JDBC) adalah ketidakcocokan impedans (perbezaan antara teknologi berorientasikan objek dan relasi). Penyelesaian masalah ini diperkenalkan melalui pengenalan lapisan abstrak yang dipanggil Lapisan Kegigihan, yang merangkumi akses pangkalan data dari logik perniagaan. JPA (Java Constence API) adalah rangka kerja yang didedikasikan untuk pengurusan data relasi (menggunakan lapisan ketekunan) dalam aplikasi Java. Terdapat banyak pelaksanaan vendor JPA yang digunakan dalam komuniti pemaju Java. Hibernate adalah pelaksanaan JPA yang paling popular (DataNucleus, EclipSelink dan OpenJPA adalah beberapa orang lain). Versi JPA terbaru (JPA 2.0) disokong sepenuhnya oleh Hibernate 3.5, yang dikeluarkan pada bulan Mac, 2010.

Apa itu JPA?

JPA adalah rangka kerja untuk menguruskan data hubungan untuk Java. Ia boleh digunakan dengan aplikasi menggunakan JSE (platform Java, edisi standard) atau JEE (platform Java, edisi perusahaan). Versi semasa ialah JPA 2.0, yang dikeluarkan pada 10 Dis, 2009. JPA menggantikan EJB 2.0 dan EJB 1.1 Kacang Entiti (yang sangat dikritik kerana menjadi kelas berat oleh komuniti pemaju Java). Walaupun kacang entiti (dalam ejb) disediakan objek kegigihan, banyak pemaju digunakan untuk menggunakan objek yang agak ringan yang ditawarkan oleh DAO (objek akses data) dan kerangka lain yang serupa. Akibatnya, JPA diperkenalkan, dan ia menangkap banyak ciri -ciri kemas dalam kerangka yang disebutkan di atas.

Kegigihan seperti yang diterangkan dalam JPA meliputi API (ditakrifkan dalam javax.kegigihan), JPQL (platform Java, edisi perusahaan) dan metadata diperlukan untuk objek hubungan. Keadaan entiti kegigihan biasanya berterusan ke meja. Contoh entiti sesuai dengan baris jadual pangkalan data relasi. Metadata digunakan untuk menyatakan hubungan antara entiti. Anotasi atau fail deskriptor XML berasingan (yang digunakan dengan aplikasi) digunakan untuk menentukan metadata dalam kelas entiti. JPQL, yang serupa dengan pertanyaan SQL, digunakan untuk pertanyaan 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 ORM (pemetaan objek-relasi) yang boleh digunakan untuk memetakan model objek-relasi ke model relasi konvensional. Secara ringkas, ia mewujudkan pemetaan antara kelas dan jadual Java dalam pangkalan data relasi, juga antara jenis data Java hingga SQL. Hibernate juga boleh digunakan untuk pertanyaan dan pengambilan data dengan menjana panggilan SQL. Oleh itu, pengaturcara dilepaskan dari pengendalian manual set keputusan dan menukarkan objek. Hibernate dibebaskan sebagai rangka kerja sumber percuma dan terbuka yang diedarkan di bawah lesen GNU. Pelaksanaan API JPA disediakan di Hibernate 3.2 dan kemudian versi. Gavin King adalah pengasas Hibernate.

Apakah perbezaan antara JPA dan Hibernate?

JPA adalah rangka kerja untuk menguruskan data relasi dalam aplikasi Java, sementara Hibernate adalah pelaksanaan khusus JPA (begitu idealnya, JPA dan Hibernate tidak dapat dibandingkan secara langsung). Dengan kata lain, Hibernate adalah salah satu rangka kerja paling popular yang melaksanakan JPA. Hibernate melaksanakan JPA melalui anotasi hibernate dan perpustakaan entitiManager yang dilaksanakan di atas perpustakaan teras hibernate. Kedua -dua EntityManager dan Anotasi mengikuti kitaran hayat Hibernate. Versi JPA terbaru (JPA 2.0) disokong sepenuhnya oleh Hibernate 3.5. JPA mempunyai manfaat mempunyai antara muka yang diseragamkan, jadi komuniti pemaju akan lebih akrab dengannya daripada hibernate. Sebaliknya, API hibernate asli boleh dianggap lebih kuat kerana ciri -cirinya adalah superset dari JPA.