Wpis z mikrobloga

Mirkasy,
jakie są zalety budowania zapytań w Spring Data poprzez org.springframework.data.jpa.domain.Specification zamiast stworzyć metody które będą nam budowały zapytania w Stringu. Parametry oraz informacje jakie kolumny oraz czy to jest order ASC, OR czy AND przychodzą w atrybutach(XML). Takie sklejanie zapytania żmudne, ale mniej kodu niż ze Specification.
#java #spring #hibernate
  • 14
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@victordeleco2: pomyśl sobie, że chcesz zrobić wyszukiwarkę z wieloma polami. If pole uzupełnione to dodaj kolejnego where? Jak zrobisz to w SQL? Musiałbyś tworzyć tyle SQL ile jest pól i razy wszystkie kombinacje.
A w JPA masz kod Javowy i na każde pole możesz napisać prostego ifa.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@PoteznyMagWody: płatne jest dla baz np. Oracle lub SQL Server. Nie każdy wszędzie może Postgresa używać.
Wiem że niby jak klient ma kasę na Oracle to Jooq to nie duża kwota. Ale chodzi o podejście. Biznes, architekci i cała reszta przyzwyczajona, że Java, Spring, JS itd. cały stack jest darmowy. Nie przewidują w budżecie dodatkowych wydatków. Potem przy licencjonowaniu apki muszą kolejną rzecz ogarniać (czy potrzebna dodatkowa licencja czy nie). Dlatego
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@victordeleco2: jakie są nowsze technologie w relacyjnych bazach danych?

Jak nie potrzebujesz NoSQL, to po co na siłę go wciskać? Używasz zwykłej relacyjnej bazy. Z domysłu jakiś darmowy np. PostgeSQL.

Ale czasem klient ma wymaganie, że ma bardzo dużo danych i zamiast Postgresa chciałby np. klastrowanego Oracle. Albo np. chcą SQL Server bo już mają na niego licencje i mają specjalistów DBA od tej konkretnej bazy.

Narzędzie trzeba wybrać do potrzeb.
  • Odpowiedz
@victordeleco2: @PrzegrywWykopek:

Sklejam jednego sql z obiektu. Te pola które nie sa puste dodaje do where po OR albo AND. Ze specification jest wiecej kodu.


No właśnie i querydsl jest o wiele wygodniejszy niż Specification lub składanie to przez konkatenacje stringów.
  • Odpowiedz