Java Persistence API (JPA), Java için Object Relational Mapping kavramını/tekniğini kullanabilmek adına tasarlanan bir şartname ya da bir başka tanımla kurallar bütünüdür. Java EE ve Java SE uygulamalarında kullanılır.
Amacı : ORM için bir standart sağlamak.
Bize sağladığı avantajlara/imkanlara bakacak olursak;
- Veri için kalıcılık sağlar.
- POJO modelli geliştirme sağlar.
- Bakımı kolay ve aynı zamanda performanslıdır.
- Veritabanı açısından bağımsızdır.
- Caching ve Transaction yönetimi desteği sağlar.
- Kendine özgü sorgulama dili(JPQL) var. (Query API, Criteria API gibi seçeneklerde mevcut)
Java Persistence API kendi başına bir şey yapamaz, bir implementation’a yani uygulamak için bir araca ihtiyaç duyar. Referans implementation’ı EclipsLink‘dir.
Bazı JPA araçları :
- Hibernate JPA
- EclipsLink
- Open JPA
- ObjectDB
- Toplink
- iBatis
- DataNucleus
Popüler olarak kullanılan araç/implementation 2014 yılında JRebel tarafından Hibernate olarak aşağıdaki tabloda gözükmekte. Neden popüler olduğuna, diğer araçlarla karşılaştırmalara bir başka yazıda bakacağız.
Dipnot: Unutulmamalıdır ki Hibernate, EclipsLink vb. gibi teknolojiler sadece birer araçtır. Sonuç olarak bu araçların yapacakları işler aynıdır. Önemli olan JPA’nin yapısıdır.
Bir sonraki yazıda JPA için hatta yazılım dünyası için önemli konulardan olan Entity hakkında bilgi vereceğim.