【问题标题】:How can I call a method on save and update of multiple domains?如何调用保存和更新多个域的方法?
【发布时间】:2013-01-15 06:28:24
【问题描述】:

我想为一堆不同域类的每个updatesave 操作调用一个服务方法。我可以从beforeInsertbeforeUpdate 调用该方法,但是有很多域,为每个域执行此操作会很耗时。那么有没有办法解决这个问题?例如,添加

static transactional = true

对服务或控制器使流程具有事务性;所以以类似的方式,我可以对此做些什么吗?

【问题讨论】:

  • 您可以注册一个单独的事件侦听器对象,该对象将侦听来自所有域类的事件,请参阅用户指南中events and auto timestamping 下的“自定义事件侦听器”小节。
  • 我正在尝试实现自定义事件侦听器,但找不到足够的相关文档,您能帮我吗?

标签: grails groovy save


【解决方案1】:

如果我明白你在问什么:

在更新或保存您的域组的循环中,调用您的服务方法,然后调用save(),将flush 选项设置为false

.save(flush: false)

遍历组后,在会话中运行 .flush().clear()。 (这只会刷新您的记录一次。您也可以在循环中添加一个计数器,并为每 x 条记录调用 flush()clear()。)

【讨论】:

  • 不,这不是我要找的,但感谢您的回复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 2016-12-18
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多