1

我有一个填充列表:

def someList=... (string values)

我想将其传递给 SQL 语句以限制查询选择的列。

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

但是,当我尝试这样做时出现此错误:

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

有人有想法吗?谢谢!

4

1 回答 1

0

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

db.rows("select ${someList.join(',')} from arch_application" as String)
于 2012-06-15T17:38:25.400 回答