【发布时间】:2011-10-25 17:02:49
【问题描述】:
我正在尝试弄清楚如何使这段代码工作:
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')]
那么我做错了什么?执行查询的域对象是否错误?
【问题讨论】: