Named Query в Hibernate — это заранее определённый запрос на HQL (Hibernate Query Language), который связан со строковым именем. Это позволяет тебе ссылаться на запрос по всему приложению по имени вместо того, чтобы встраивать логику запроса прямо в код.
Есть два основных способа определить Named Query в Hibernate:
Ты можешь объявить Named Query в своих Hibernate XML-файлах маппинга:
<query name="findBookByAuthor">
<![CDATA[from Book s where s.author = :author]]>
</query>
Или же ты можешь использовать Java-аннотации для более современного подхода:
@NamedQueries({
@NamedQuery(
name = "findBookByAuthor",
query = "from Book s where s.author = :author"
)
})
:author для безопасных динамических запросовПосле определения ты можешь выполнить Named Query через сессию:
Query query = session.getNamedQuery("findBookByAuthor");
query.setParameter("author", "John Doe");
List<Book> results = query.list();
Named Queries в Hibernate парсятся и валидируются при запуске приложения, а не во время выполнения, что обеспечивает раннее обнаружение ошибок синтаксиса запросов.
Новый — ещё не проверен сообществом
Вы