Pytanie architektoniczne a i może takie o właściwą implementację.

Mam ja klasę Rodzic, kolekcja @OneToMany dla Dzieci. Jednak chciałbym aby Rodzic nie miał standardowego gettera getDzieci() tylko sparametryzowany getDzieci(String imie).

Nie chcę pobierać wszystkich dzieci rodzica a potem filtrować bo nie dość, że już ORM zarzyna apkę to jeszcze chciałbym aby nikt przez pomyłkę po mnie nie pobrał wszystkich Dzieci danego rodzica. Oczywiście od biedy mogę zostawić oryginalny getter i oznaczyć go
Trafiłem na projekt gdzie leader proponuje Spring-Data + Oracle.

Tak jak Spring-Data bardzo ładnie zgrało mu się z MongoDB tak widzę, że Oracle plus Spring-Data to raczej coś w rodzaju samego JPA. I teraz tak się zastanawiam. Czy jest sens robić to Spring-Data z JPA czy może spróbować rozszerzenia dla JDBC? A może próbować przeforsować Spring-Data + Hibernate? I dlaczego właściwie Spring-Data a nie samo Spring?

#programowanie #spring #spring-data #hibernate #
Dokumentacja na stronie głównej tłumaczy co takiego oferuje Spring-Data:

Implementing a data access layer of an application has been cumbersome for quite a while. Too much boilerplate code has to be written to execute simple queries as well as perform pagination, and auditing. Spring Data JPA aims to significantly improve the implementation of data access layers by reducing the effort to the amount that's actually needed. As a developer you write your
  • Odpowiedz
@echelon_: Inaczej mówąc SD oferuje automatyczne tworzenie implementacji dla interfejsów DAO (trochę podobne do ActiveRecord w Railsach), jest też zintegrowane z QueryDSL (statycznie sprawdzane typy w zapytaniach, takie lepsze kryteria).
  • Odpowiedz
@hbpitero: @Rincewind: czasy:

// Stare:

Start: Tue Oct 15 09:32:16

Po zapytaniu: Tue Oct 15 09:34:13 // 117 sekund

// zmiana na

// private static EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCEUNITNAME);

Start: Tue Oct 15 18:42:08

Po zapytaniu: Tue Oct 15 18:43:56 // 108 sekund

Start: Tue Oct 15 23:02:36

Po zapytaniu: Tue Oct 15 23:04:22 // 106 sekund
  • Odpowiedz