Najlepsze praktyki kodowania Java do ponownego wykorzystania części zapytania do policzenia
Theimplementacja-wynik-stronicowanie-w-hibernacji-uzyskiwanie-całkowita-liczba-wierszy pytanie wywołuje dla mnie kolejne pytanie, opewne obawy dotyczące wdrożenia:
Teraz wiesz, że musisz ponownie wykorzystać część kwerendy HQL, aby liczyć, jak efektywnie wykorzystać?
Różnice między dwoma zapytaniami HQL to:
wybór jestcount(?)
, zamiast pojo lub własności (lub listy)nie powinny się zdarzać, więc niektóre tabele nie powinny być łączoneorder by
powinien zniknąćCzy są inne różnice?
Czy maszkodowanie najlepszych praktyk w celu efektywnego wykorzystania tego ponownego wykorzystania (dotyczy: wysiłku, jasności, wydajności)?
Przykład prostego zapytania HQL:
select a from A a join fetch a.b b where a.id=66 order by a.name
select count(a.id) from A a where a.id=66
AKTUALIZOWANY
Otrzymałem odpowiedzi na:
za pomocąKryteria (ale używamy głównie HQL)manipulowanie łańcuchem zapytanie (ale wszyscy się zgadzają, że wydaje się to skomplikowane i niezbyt bezpieczne)zawijanie zapytania, opierając się na optymalizacji bazy danych (ale wydaje się, że nie jest to bezpieczne)Miałem nadzieję, że ktoś da opcje na innej ścieżce, bardziej związane z konkatenacją String.
Czy moglibyśmy zbudować oba zapytania HQL przy użyciu części wspólnych?