JPA ve Hazırda Bekleme arasında fark

Anonim

JPA vs Hibernate

Hemen hemen tüm kurumsal uygulamaların ilişkisel veritabanlarına düzenli olarak erişmesi gerekiyor. Ancak önceki teknolojilerle (JDBC gibi) karşılaşılan bir sorun, empedans uyuşmazlığıydı (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ı olarak adlandırılan soyut katmanın tanıtımı ile ortaya atıldı. JPA (Java Persistence API), Java uygulamalarında ilişkisel verilerin (persistence katmanı kullanılarak) yönetimi için ayrılmış bir çerçevedir. Java geliştirici topluluğunda kullanılan JPA'nın birçok satıcı uygulaması vardır. Hibernate, JPA'nın en popüler uygulamadır (DataNucleus, EclipseLink ve OpenJPA bazılarıdır). En yeni JPA sürümü (JPA 2. 0), Mart 2010'da piyasaya sürülmüş Hibernate 3. 5. tarafından tamamen desteklenmektedir.

JPA nedir?

JPA, Java için ilişkisel verileri yönetmek için bir çerçevedir. JSE (Java Platform, Standard Edition) veya JEE (Java Platform, Enterprise Edition) kullanan uygulamalarla kullanılabilir. Geçerli 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 fasulyelerinin yerini almıştır (Java geliştirici topluluğu tarafından ağır olduğu gerekçesiyle şiddetle eleştirilmiştir). Entity beans (EJB'de) kalıcılık nesneleri sağladı, ancak birçok geliştirici DAO (Data Access Objects) tarafından sunulan nispeten hafif nesneleri ve benzeri diğer çerçeveleri kullanıyordu. Sonuç olarak, JPA tanıtıldı ve yukarıda bahsedilen çerçevelerin pek çoğunu yakaladı.

JPA'da açıklanan kalıcılık, API'yi (javax persistence'da tanımlanmıştır), JPQL (Java Platform, Enterprise Edition) ve ilişkisel nesneler için gerekli meta verilerini kapsar. Bir sebat varlığının durumu tipik olarak bir tabloya kalıcıdır. Bir varlığın örnekleri, ilişkisel veritabanının tablonun satırlarına karşılık gelir. Meta veriler, varlıklar arasındaki ilişkileri ifade etmek için kullanılır. Öğeler sınıflarında meta verileri belirtmek için ek açıklamalar veya ayrı XML tanımlayıcı dosyaları (uygulama ile dağıtılan) kullanılır. SQL sorgularına benzer olan JPQL, depolanan varlıkları sorgulamak için kullanılır.

Hibernate nedir?

Hibernate, Java programlama dili için tasarlanmış nesne-ilişkisel haritalama 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 eşleme) kütüphanesi. Basit terimlerle, Java sınıfları ve ilişkisel veritabanlarındaki tablolar arasında, ayrıca Java to SQL veri türleri arasında bir eşleme oluşturur. Hibernate ayrıca, veri sorgulama ve SQL çağrıları üretmek yoluyla alma için de kullanılabilir.Bu nedenle, programcı elle sonuç kümeleri işleme ve nesne dönüştürme rahatladı. Hibernate, GNU lisansı altında dağıtılan özgür ve açık kaynaklı bir çerçeve olarak piyasaya çıktı. JPA API'si için bir uygulama Hibernate 3. 2 ve sonraki sürümlerinde sağlanır. Gavin King, Hibernate'in kurucusu.

JPA ve Hazırda Bekleme arasındaki fark nedir?

Hazırda Bekleme, JPA'nın spesifik bir uygulaması olsa da JPA, Java uygulamalarında ilişkisel verileri yönetmek için bir çerçevedir (ideal olarak JPA ve Hazırda Bekleme modeli doğrudan karşılaştırılamaz). Başka bir deyişle, Hazırda Bekleme, JPA'yı uygulayan en popüler çerçevelerden biridir. Hibernate, Hazırda Bekleme Çekirdeği kütüphanelerinin üstüne uygulanan Hibernate Annotation ve EntityManager kütüphaneleri aracılığıyla JPA'yi uygular. Hem EntityManager hem de Ek açıklamalar Hazırda Bekleme'nin yaşam döngüsünü takip eder. Yeni JPA sürümü (JPA 2. 0) Hibernate 3 tarafından tam olarak desteklenir. JPA, standartlaştırılmış bir arayüze sahip olma avantajına sahiptir; dolayısıyla geliştirici topluluğu Hibernate'den daha fazla tanıdık gelecektir. Öte yandan, yerleşik Hazırda Bekleme API'leri, özellikleri JPA'nın bir üst kümesidir, çünkü daha güçlü kabul edilebilir.