我正在尝试更新结果表。我用来更新的代码如下:
Domain类Result具有以下属性
int rate
来自控制器的代码:
Result.executeUpdate("update Result b set b.rate=:rate " +
"where b.id=:id",
[rate: params.rate, id: (Long) ((params.id).toInteger())])
我最终收到以下错误:
java.lang.String cannot be cast to java.lang.Integer
注意:params.rate
是integer
,因此如何update
查询。
答案 0 :(得分:3)
注意:params.rate是一个整数,所以如何更新查询。
除非您明确转换它们,否则参数值始终是字符串(或字符串的列表/数组)。试试这个
Result.executeUpdate("update Result b set b.rate=:rate where b.id=:id",
[rate: params.int('rate'), id: params.long('id')]
)