我有一个填充的列表:
def someList=... (string values)
我希望将其传递给SQL语句以限制查询选择哪些列。
db.rows("select ${someList} from arch_application")
但是,当我尝试这样做时,我收到此错误:
There is a ? parameter in the select list. This is not allowed.
有人有想法吗?谢谢!
答案 0 :(得分:0)
当你将一个GString传递给Sql.rows
时,它在groovy中的解析方式与正常情况不同。特别是,它创建了一个PreparedStatement,其中包含${}
替换的可替换参数。在你的情况下,这可能不是你想要的。尝试将GString强制转换为Java字符串:
db.rows("select ${someList.join(',')} from arch_application" as String)