例如,我需要检索一个表中的几个寄存器,并编辑一个字段,但是用一个循环来保存所有寄存器需要很长时间,是否存在更好的保存方法? 我怎么做....
class Table
static mapping = {
table "TABLEEX"
id generator:'sequence', params:[sequence:'TABLEEX_SEQ']
}
// identificacion
String data1
String data2
}
搜索数据:
def stuff = Table.createCriteria().list{
eq("data1","1")
}
编辑并保存
stuff.each {
it.data2 = "aaa"
it.save()
}
答案 0 :(得分:5)
不清楚为什么要检索要开始的对象。这是你想要的东西吗?
Table.executeUpdate("update Table t set t.data2=:newData where t.data1=:oldData", [newData: 'BAR', oldData: 'FOO'])
修改强>
你也可以这样做......
def query = Table.where {
data1 == 'FOO'
}
int total = query.updateAll(data2:'BAR')
答案 1 :(得分:-2)
Hibernate(gorm的基本机制,grails orm)不支持这一点。 您必须迭代每个元素并自行保存或实现它(这不会使它更快)。