Рекомендации по Java-кодированию для повторного использования части запроса для подсчета

внедрение-результат-пейджинг-в-спящий режим пробивной-общее-число-строк вопрос вызывает другой вопрос для меня, онекоторые проблемы реализации:

Теперь вы знаете, что вам нужно повторно использовать часть запроса HQL для подсчета, как эффективно использовать повторно?

Различия между двумя HQL-запросами:

выборcount(?)вместо pojo или свойства (или списка)выборки не должны происходить, поэтому некоторые таблицы не должны объединятьсяorder by должен исчезнуть

Есть ли другие отличия?

У тебя естькодирование лучших практик для эффективного повторного использования (касается: усилий, ясности, производительности)?

Пример для простого запроса 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

ОБНОВЛЕНО

Я получил ответы на:

с помощьюкритерии (но мы используем в основном HQL)манипулируя строкой запрос (но все согласны, что это кажется сложным и не очень безопасным)упаковка запроса, полагаясь на оптимизацию базы данных (но есть ощущение, что это небезопасно)

Я надеялся, что кто-нибудь даст варианты по другому пути, более связанному с конкатенацией строк.

Можем ли мы построить оба HQL-запроса, используя общие части?

Ответы на вопрос(4)

Ваш ответ на вопрос