SORU
23 Aralık 2012, Pazar


Bahar Veri CrudRepository ve JpaRepository arabirimleri arasındaki fark JPA nedir

CrudRepository JpaRepository arasındaki fark nedir web örneklere bakın Bahar Veri JPA, arayüzleri. Onları biraz birbirinin yerine kullanılan görüyorum. Aralarındaki fark nedir? Neden birini kullanmak ister miydiniz?

CEVAP
26 Aralık 2013, PERŞEMBE


Ken cevabı ama "neden birini kullanmak ister miydiniz" kısmı söz konusu.? söylemek istiyorum temelde doğru.

Temelleri

Deponuzu için seçtiğiniz temel arayüz iki ana amacı vardır. İlk olarak, müşterileri içine arabirimi örnekleri enjekte böylece Bahar Veri depo altyapı arayüzü bulmak ve proxy oluşturma tetiklemek için izin verir. İkinci amaç fazladan yöntemleri bildirmek zorunda kalmadan arayüzüne gerektiği kadar işlevselliği çekmek için.

Ortak arabirimleri

Bahar işlevleri: özel bir set ortaya çıkaran iki temel arayüzleri ile çekirdek kitaplığı Veri

  • CrudRepository - CRUD yöntemleri
  • PagingAndSortingRepository sayfa ve sıralama yöntemleri uzatır CrudRepository ()

Mağaza özgü arayüzleri

Tek tek mağaza modülleri (örneğin JPA ya MongoDB) teşhir deposu-özel uzantıları bu temel arabirimleri için erişim izni için mağaza özel işlevselliği gibi kızarma ya da özel beton al biraz deposu detaylara hesabı. Örneğin bu deleteInBatch(…) JpaRepository hangisi farklı delete(…) olarak kullanan bir sorgu silmek için verilen varlıklardan hangisi daha fazla ölçülebilir ama size yan etkisi olmayan tetikleme JPA tanımlı cascades (spec olarak tanımlar).

Biz genellikle öneririzdeğilbu üssü kullanmak için müşterilerine alttaki kalıcılık teknolojisini kullanır ve böylece onları ve depo arasındaki kaplin sıkın gibi arabirimleri. Artı, temel olarak bir bit bir depo özgün tanımından uzak olsun "varlıklar topluluğu". Eğer yapabiliyorsanız, PagingAndSortingRepository ile kalın.

Özel depo arabirimleri Bankası

Doğrudan sağlanan temel arayüzleri birine bağlı olarak olumsuz iki kat. İkisi de teorik olarak düşünülebilir ama farkında olmak da önemli olduklarını düşünüyorum

  1. Bir Bahar Veri deposu bağlı olarak arayüz kitaplığına depo arabirimi çiftler.Bu muhtemelen kodunuzda Page Pageable gibi soyutlamalar neyse kullanacağız gibi belirli bir sorunu olduğunu sanmıyorum. Bahar Veri commons-lang ya da Armut gibi herhangi bir diğer genel amaçlı kütüphane herhangi bir farklı değildir. Makul yarar sağladığı sürece sorun değil.
  2. *12 örneğin*, genişleterek aynı anda kalıcılık yöntemi Tam bir set kullanır.Bu muhtemelen en iyi şartlar da ancak karşılaşacağını durumlar nereden aldın gibi kazanmak, daha ince taneli kontrol yöntemlerini sergilemek, örneğin oluşturmak için ReadOnlyRepository içermez save(…) delete(…) yöntemleri CrudRepository.

Bu olumsuzlukları her çözümü kendi temel depo arabirimi veya onları bir dizi bile zanaat. Uygulamalar bir sürü böyle bir şey gördük:

interface ApplicationRepository<T> extends PagingAndSortingRepository<T, Long> { }

interface ReadOnlyRepository<T> extends Repository<T, Long> {

  // Al finder methods go here
}

İlk depo arabirimi aslında tek nokta 1 giderdiği bazı genel amaçlı temel arayüzü değil, aynı zamanda tutarlılık için Long KİMLİK türü bağları. İkinci ınterface find…(…) tüm yöntemleri CrudRepository PagingAndSortingRepository kopyalamıştır ama manipüle olanları göstermiyor. Daha fazla reference documentation bu yaklaşım, okumaya devam edin.

Özet - tl;dr

Depo soyutlama temel depoyu tamamen mimari ve fonksiyonel ihtiyaçları tarafından yönlendirilen pickt sağlar. Onlar gerekirse takım, kendi depo tabanı zanaat arabirimleri olanları kutudan kullanınız. Kaçınılmaz olmadıkça dükkanı özel depo arabirimleri kal.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Darren Kitchen

    Darren Kitch

    3 EKİM 2011
  • EmmightySofia

    EmmightySofi

    25 EYLÜL 2011
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007