使用子句 IN 更新记录

Update record with clause IN

我正在使用 Grails 4.0.12,我正在尝试使用 IN 子句进行更新,这是我的简单代码:

def rowId="100,101"
Image.executeUpdate("update Image set status='DELETED' where status='NEW' and id in (:ids)", [ids: rowId])

如果我像这样构建查询字符串,一切正常:

 Image.executeUpdate("update Image set status='DELETED' where status='NEW' and id in ("+ids+")")

虽然在第一个示例中我遇到了这个错误:

java.lang.String 无法转换为 java.lang.Long

如果我只传递一个没有 IN 子句的 Id,这似乎是合理的。

尝试按以下方式更正您的第一个示例:

def rowIds = [100, 101]
Image.executeUpdate("update Image set status='DELETED' where status='NEW' and id in (:ids)", [ids: rowIds])