JPA ve Hazırda Bekletme
Neredeyse tüm kurumsal uygulamaların ilişkisel veritabanlarına düzenli olarak erişmesi gerekir. Ancak daha önceki teknolojilerde (JDBC gibi) karşılaşılan bir sorun, empedans uyumsuzluğuydu (nesne yönelimli ve ilişkisel teknolojiler arasındaki fark). Bu soruna yönelik bir çözüm, iş mantığından veritabanı erişimini kapsayan Persistence katmanı adı verilen soyut bir katmanın tanıtılmasıyla sunuldu. JPA (Java Persistence API), Java uygulamalarında ilişkisel verilerin (kalıcılık katmanını kullanarak) yönetimi için ayrılmış bir çerçevedir. Java geliştirici topluluğu içinde kullanılan birçok JPA satıcı uygulaması vardır. Hazırda Bekletme, JPA'nın bu tür en popüler uygulamasıdır (DataNucleus, EclipseLink ve OpenJPA diğerleridir). En yeni JPA sürümü (JPA 2.0), Mart 2010'da piyasaya sürülen Hibernate 3.5 tarafından tam olarak desteklenmektedir.
JPA nedir?
JPA, Java için ilişkisel verileri yönetmeye yönelik bir çerçevedir. JSE (Java Platform, Standard Edition) veya JEE (Java Platform, Enterprise Edition) kullanan uygulamalarla kullanılabilir. Mevcut sürümü, 10 Aralık 2009'da piyasaya sürülen JPA 2.0'dır. JPA, EJB 2.0 ve EJB 1.1 varlık çekirdeklerinin (Java geliştirici topluluğu tarafından ağır olduğu için ağır bir şekilde eleştirildi) yerini aldı. Varlık çekirdekleri (EJB'de) kalıcılık nesneleri sağlasa da, birçok geliştirici DAO (Veri Erişim Nesneleri) tarafından sunulan nispeten hafif nesneleri ve bunun yerine diğer benzer çerçeveleri kullanmaya alışmıştı. Sonuç olarak, JPA tanıtıldı ve yukarıda bahsedilen çerçevelerin düzgün özelliklerinin çoğunu yakaladı.
Persistence, JPA'da açıklandığı gibi API'yi (javax'ta tanımlanmıştır) kapsar.kalıcılık), JPQL (Java Platform, Enterprise Edition) ve ilişkisel nesneler için gerekli meta veriler. Kalıcılık varlığının durumu tipik olarak bir tabloda kalıcıdır. Bir varlığın örnekleri, ilişkisel veritabanı tablosunun satırlarına karşılık gelir. Meta veriler, varlıklar arasındaki ilişkileri ifade etmek için kullanılır. Varlık sınıflarında meta verileri belirtmek için açıklamalar veya ayrı XML tanımlayıcı dosyaları (uygulamayla birlikte dağıtılır) kullanılır. SQL sorgularına benzeyen JPQL, depolanan varlıkları sorgulamak için kullanılır.
Hazırda Bekletme nedir?
Hibernate, Java programlama diline yönelik nesne-ilişkisel eşleme için kullanılabilen bir çerçevedir. Daha spesifik olarak, nesne-ilişkisel modeli geleneksel ilişkisel modele eşlemek için kullanılabilen bir ORM (nesne-ilişkisel haritalama) kitaplığıdır. Basit bir ifadeyle, Java sınıfları ve ilişkisel veritabanlarındaki tablolar arasında, ayrıca Java'dan SQL veri türleri arasında bir eşleme oluşturur. Hazırda Bekletme, SQL çağrıları üreterek veri sorgulama ve alma için de kullanılabilir. Bu nedenle programcı, sonuç kümelerinin elle işlenmesi ve nesnelerin dönüştürülmesinden kurtulur. Hazırda Bekletme, GNU lisansı altında dağıtılan ücretsiz ve açık kaynaklı bir çerçeve olarak yayınlandı. Hazırda Bekletme 3.2 ve sonraki sürümlerde JPA API için bir uygulama sağlanır. Gavin King, Hibernate'in kurucusudur.
JPA ve Hazırda Bekletme arasındaki fark nedir?
JPA, Java uygulamalarında ilişkisel verileri yönetmek için bir çerçevedir, Hazırda Bekletme ise JPA'nın özel bir uygulamasıdır (bu nedenle ideal olarak JPA ve Hazırda Bekletme doğrudan karşılaştırılamaz). Başka bir deyişle, Hazırda Bekletme, JPA'yı uygulayan en popüler çerçevelerden biridir. Hibernate, JPA'yı Hibernate Annotation ve Hibernate Core kitaplıklarının üzerine uygulanan EntityManager kitaplıkları aracılığıyla uygular. Hem EntityManager hem de Ek Açıklamalar, Hibernate'in yaşam döngüsünü takip eder. En yeni JPA sürümü (JPA 2.0), Hibernate 3.5 tarafından tamamen desteklenmektedir. JPA, standartlaştırılmış bir arayüze sahip olma avantajına sahiptir, bu nedenle geliştirici topluluğu, Hazırda Beklet'ten daha aşina olacaktır. Öte yandan, özellikleri JPA'nınkinin bir üst kümesi olduğundan, yerel Hazırda Bekletme API'leri daha güçlü olarak kabul edilebilir.