В JPQL как вы получаете доступ к свойствам именованных параметров? - PullRequest
3 голосов
/ 06 июля 2011

Я использую Hibernate 3.5.4-Final.

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

@NamedQuery(name = "hello", query = "SELECT p FROM WorkPackage p WHERE p IN (:workPackage).relatedWorkflows")

Проблема находится в конце запроса, в

(:workPackage).relatedWorkflows

, которая заставляет Hibernate выдавать QuerySyntaxException во время развертывания.Убрать скобки не поможет;Я оставил их для ясности.Есть ли способ обойти это, или мне придется делать это программно?

1 Ответ

4 голосов
/ 06 июля 2011

Вы не можете.Вы должны передать само значение свойства в запрос:

@NamedQuery(name = "hello", query = "SELECT p FROM WorkPackage p WHERE p IN (:relatedWorkflows)")

query.setParameterList("relatedWorkflows", workPackage.getRelatedWorkflows());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...