Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
VirtualInterface ile Dynamic Repository
#1
Java spring framework JPA Repository'de kullanılan dinamik yapıyı basitçe gerçekleşmeye çalıştığım bir projeyi paylaşmak istiyorum.


Amaç repository'de kullanılacak query method imzalarını sadece interface'de tanımlayarak, gerçekte method'u implemente etmeden, dynamic olarak çalıştırılması.

Bir Product nesnemiz var ve bu nesneden oluşmuş bir DataSet'imiz var diyelim.
Bu dataset üzerinde yapılabilecek query'ler için ortak bir dil oluşturup buna uygun method isimleriyle tanımlanmış interface'ler ile sorgulamaları gerçekleştirmek için aşağıdaki gibi bir interface tanımlamak yeterli. Bu interface'i implemente etmemize gerek yok. Method'lar, method isimlerinden yola çıkarak dynamic olarak çalıştırılabilir.

 IProductRepository = interface(IRepositoryBase)
   function getByNameIs(const aName: string): TProduct;
   function findByPriceIsLessThan(const aPrice: double): TList<TProduct>;
   function findByPriceIsGreaterThan(const aPrice: double): TList<TProduct>;
 end;

getBy ile başlayan methodlar scalar bir result geriye döndürürken findBy ile başlayan methodlar bir list geriye döndürür.
Sonraki kısım sorgulamaya konu olan property name. Sonrası ise yapılacak karşılaştırmanın türünü belirtir.

Tüm projeyi ekliyorum.
Daha epeyce geliştirmeye ihtiyacı var ancak temel olarak ilham verici olabilir belki.


Ek Dosyalar
.zip   VirtualInterface.zip (Dosya Boyutu: 17,41 KB / İndirme Sayısı: 20)
Cevapla
#2
Paylaşım için teşekkürler. Bence bu konunum makale kısmında olması daha doğru olacaktır. Projenizde ilerleme oldukça ekleme ihtiyacı duyduğunuz zaman makale için güncelleme yaparsınız.
Makale içinden bulmak erişme daha kolay olacaktır.
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#3
Niyetim oydu ancak o bölümlere yetkim yok sanırım.
Cevapla
#4
Teşekkürler.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  ISAPI dynamic link library pro_imaj 6 971 10-05-2023, Saat: 18:10
Son Yorum: pro_imaj



Konuyu Okuyanlar: 1 Ziyaretçi