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?

questionAnswers(4)

yourAnswerToTheQuestion