Hibernate именованные запросы и его преимущество в производительности?

Как говорится в документе hibernate, целью именованного запроса является очистка HQL из разных мест в проекте в одно место в некотором xml (в случае декларативного подхода). Это означает, что не требуется перекомпиляция в случае изменения запроса, но перезагрузка фабрики сеанса Требуется, что означает запуск сервера в большинстве случаев, поскольку объект запроса кэшируется. Но в случае аннотации мне нужно определить именованные запросы на уровне сущности. Так что здесь сборка опять требует. Мой вопрос здесь также помогает именованный запрос в производительности. Вот мое понимание:

1) когда я использую именованные запросы, просто объект запроса кэшируется в кеше второго уровня. Когда я говорю просто объект запроса, это означает, что синтаксис запроса кешируется, а не результаты запроса. Верно? Если это правильно, то, вероятно, полезно только в случае HQL, потому что мы можем избежать трансляции HQL в собственный запрос, каждый раз, когда запрос запускается и имеет хорошую производительность по времени.

Но если мы используем нативный sql, именованный запрос не дает такого преимущества, так как в этом случае не происходит никакого перевода.

Итак, главное преимущество именованного запроса - сделать центральный репозиторий sqls. Да, в случае HQL это также может сэкономить нам некоторое время на перевод в родной sql, но имейте в виду, что объект запроса будет находиться в течение времени жизни jvm и будет занимать некоторое количество памяти. Таким образом, некоторые компромиссы здесь.

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

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