将Java List传递给SQL查询Grails

时间:2012-06-15 16:35:42

标签: sql list grails

我有一个填充的列表:

def someList=... (string values)

我希望将其传递给SQL语句以限制查询选择哪些列。

db.rows("select ${someList} from arch_application")

但是,当我尝试这样做时,我收到此错误:

There is a ? parameter in the select list. This is not allowed. 

有人有想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

当你将一个GString传递给Sql.rows时,它在groovy中的解析方式与正常情况不同。特别是,它创建了一个PreparedStatement,其中包含${}替换的可替换参数。在你的情况下,这可能不是你想要的。尝试将GString强制转换为Java字符串:

db.rows("select ${someList.join(',')} from arch_application" as String)