如何在Grails中同时保存一个集合

时间:2014-11-24 15:36:50

标签: grails collections

例如,我需要检索一个表中的几个寄存器,并编辑一个字段,但是用一个循环来保存所有寄存器需要很长时间,是否存在更好的保存方法? 我怎么做....

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()
}

2 个答案:

答案 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)不支持这一点。 您必须迭代每个元素并自行保存或实现它(这不会使它更快)。