Witajcie,
Wczoraj miała miejsce premiera biblioteki Daobab.
Daobab jest rozszerzeniem JPA, które współpracuje z dowolną implementacją JPA - od SpringDataJPA do standalone Hibernate.
Na co pozwala?
- Kwerendy jako kod Javy, w pełni sprawdzalny przez IDE np:
Select.from(daoPizza)
.where(Where.AND()
.and(daoPizza.colPizzaId(),Operator.EQUAL,4)
.and(daoPizza.colName(),Operator.EQUAL,'CAPRICIOSA'))
.result();
-
Wykonywanie kwerend w pamięci. Np raz zaczytujesz tabelkę (np słownik), następnie wykonujesz mega szybko kwerendy na nich już bez obciążania bazy danych.
-
Możliwość pracy na relacjach encji - Budujesz kwerendy wyciągające powiązane encje do podanego obiektu bez podania ID oraz bez podania typu obiektu.
-
Abstrakcyjne budowanie kwerend - bez podawania konkretnych encji lub typów danych.
-
Automatyczne obsługiwanie kwerend dotyczących kilku tabel bez sztywnego opisywania asocjacji w obiekcie Entity przy pomocy adnotacji.
Ogólnie biblioteka promuje odejście od dodawanie kolejnych metod w implementacjii DAO na rzecz umieszczania kwerend bezpośrednio w kodzie. Np:
List<Pizza> list=Select.from(daoPizza)
.whereSelect(daoPizza.colPizzaId(),Operator.IN,
Select.fieldList(daoPizzaPrice.colPizzaId())
.where(daoPizzaPrice.colPrice(),Operator.GREATER_THAN,10.0))
.result();
for (Pizza pizza: list){
eat(pizza);
}
Bardzo ciekawie rozwiązana jest sprawa łączenia danych z wielu tabel (Projekcje) czy uzupełniania encji danymi z innych tabel (eager lub lazy loading).
Zachęcam do obejrzenia wielu przykładów na GitHub.
Jeśli temat jest interesujący - dużo więcej informacji znajdziecie na stronie http://www.daobab.io
Dodam że produkt jest w pełni "Made in Poland".