Я пытаюсь выяснить, как заставить этот фрагмент кода работать:
def searchString = unchecked.join(",");
searchString = searchString.replace("\"", "'")
println("searchString: " + searchString);
def matches=Employee.executeQuery("select e.id from Employee as e INNER JOIN Education as ed ON e.id = ed.employee_id INNER JOIN education_type AS et ON et.id = ed.type_id WHERE et.name in (" +searchString + ")");
Это строка запроса, переданная executeQuery
select e.id from Employee as e INNER JOIN Education as ed ON e.id = ed.employee_id INNER JOIN education_type AS et ON et.id = ed.type_id WHERE et.name in ('AA','BS')
, который я могу запустить в SQL Server, и он возвращает правильные результаты, однако мой код grails жалуется:
Stacktrace follows:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ON near line 1, column 59 [select e.id from Employee as e INNER JOIN Education as ed ON e.id = ed.employee_id INNER JOIN education_type AS et ON et.id = ed.type_id WHERE et.name in ('AA','BS')]
Так что я делаю не так? Это неправильный объект домена, выполняющий запрос?