我想为一堆不同的域类的每个update
和save
操作调用一个服务方法。我可以从beforeInsert
和beforeUpdate
调用该方法,但是有很多域,为每个域执行此操作会非常耗时。那有什么办法解决这个问题吗?例如,添加
static transactional = true
到服务或控制器使进程成为事务性的;所以以类似的方式,我可以做些什么吗?
答案 0 :(得分:0)
如果我理解你的要求:
在更新或保存您的域组的循环中,请调用您的服务方法,然后致电save()
,将flush
选项设置为false
:
.save(flush: false)
在遍历群组后,在会话中运行.flush()
和.clear()
。 (这只会刷新您的记录一次。您也可以在循环中粘贴一个计数器,并为每x个记录调用flush()
和clear()
。)