JPA - Pendahuluan
Setiap aplikasi perusahaan melakukan operasi database dengan menyimpan dan mengambil data dalam jumlah besar. Terlepas dari semua teknologi yang tersedia untuk manajemen penyimpanan, pengembang aplikasi biasanya berjuang untuk melakukan operasi database secara efisien.
Umumnya, pengembang Java menggunakan banyak kode, atau menggunakan kerangka kerja berpemilik untuk berinteraksi dengan database, sedangkan menggunakan JPA, beban interaksi dengan database berkurang secara signifikan. Ini membentuk jembatan antara model objek (program Java) dan model relasional (program database).
Ketidaksesuaian antara model relasional dan objek
Objek relasional direpresentasikan dalam format tabel, sedangkan model objek direpresentasikan dalam grafik format objek yang saling berhubungan. Saat menyimpan dan mengambil model objek dari database relasional, beberapa ketidakcocokan terjadi karena alasan berikut:
Granularity : Model objek memiliki lebih banyak perincian daripada model relasional.
Subtypes : Subtipe (berarti warisan) tidak didukung oleh semua jenis database relasional.
Identity : Seperti model objek, model relasional tidak mengekspos identitas sambil menulis persamaan.
Associations : Model relasional tidak dapat menentukan beberapa hubungan saat melihat ke dalam model domain objek.
Data navigation : Navigasi data antar objek dalam jaringan objek berbeda pada kedua model.
Apa itu JPA?
Java Persistence API adalah kumpulan kelas dan metode untuk terus-menerus menyimpan sejumlah besar data ke dalam database yang disediakan oleh Oracle Corporation.
Dimana menggunakan JPA?
Untuk mengurangi beban penulisan kode untuk manajemen objek relasional, programmer mengikuti kerangka kerja 'JPA Provider', yang memungkinkan interaksi yang mudah dengan instance database. Di sini kerangka yang diperlukan diambil alih oleh JPA.
Sejarah JPA
Versi EJB sebelumnya, lapisan ketekunan yang ditentukan dikombinasikan dengan lapisan logika bisnis menggunakan Antarmuka javax.ejb.EntityBean.
Saat memperkenalkan EJB 3.0, lapisan persistensi dipisahkan dan ditetapkan sebagai JPA 1.0 (Java Persistence API). Spesifikasi API ini dirilis bersamaan dengan spesifikasi JAVA EE5 pada 11 Mei 2006 menggunakan JSR 220.
JPA 2.0 dirilis dengan spesifikasi JAVA EE6 pada 10 Desember 2009 sebagai bagian dari Java Community Process JSR 317.
JPA 2.1 dirilis dengan spesifikasi JAVA EE7 pada 22 April 2013 menggunakan JSR 338.
Penyedia JPA
JPA adalah API open source, oleh karena itu berbagai vendor perusahaan seperti Oracle, Redhat, Eclipse, dll. Menyediakan produk baru dengan menambahkan rasa persistensi JPA di dalamnya. Beberapa dari produk ini meliputi:
Hibernate, Eclipselink, Toplink, Spring Data JPA, etc.