#sql #grails #hql
#sql #grails #hql
Вопрос:
Я пытаюсь получить список сотрудников с несколькими «образованиями», у каждого из которых есть «Тип образования»
итак, у сотрудника есть коллекция образований, каждое из которых имеет тип, у которого есть имя.
def unchecked = educationTypes?.unchecked
String query = "FROM Employee e, IN (e.education) AS ed WHERE ed.type.name IN (:typeNames)";
def matches = Employee.executeQuery(query, [typeNames: unchecked]);
Приведенный выше запрос дает мне следующее:
Stacktrace follows:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ed near line 1, column 39 [FROM Employee e, IN (e.education) AS ed WHERE ed.type.name IN (:typeNames)]
at $Proxy12.createQuery(Unknown Source)
Итак, я пытаюсь выяснить, как правильно получить к этому доступ. Большое спасибо за любую помощь
Комментарии:
1. Является ли unchecked пустым? Я думаю, что предложения in прерываются в HQL, если ваш параметр пуст (по крайней мере, я сталкивался с этой проблемой в прошлом, но я не могу вспомнить исключение).
Ответ №1:
Попробуйте что-то вроде этого:
Employee.executeQuery("""
select e from Employee e, Education ed
where ed.employee = e and ed.type.name IN (:typeNames)
""", [typeNames: [...]])