我想在我的 grails 域对象中调用服务 beforeDelete() 事件。不幸的是,当事件被触发时,它总是会重复崩溃。我建立了一个重现问题的示例。域对象:
class Gallery {
def myService
def beforeDelete() {
// System.out.println(myService); // not even this works, same error!
System.out.println(myService.say());
}
}
服务:
class MyService {
String say() {
"hello"
}
}
测试控制器:
class DeleteController {
def index() {
Gallery.list().each {
it.delete()
}
}
def create() {
def gallery = new Gallery()
gallery.save()
}
}
如果我启动应用程序并调用 create 后跟 index 我得到:
Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [testbeforedelete.Gallery#1]
我想要完成的是调用我的服务,这比这个例子要复杂一些。我无法解释这种行为,也不知道如何应对。我知道休眠事件需要特别注意,但我被困住了。