gpt4 book ai didi

grails - 如何构造Grails Services,使父类(super class)方法是非事务性的而子类方法是事务性的?

转载 作者:行者123 更新时间:2023-12-02 14:42:28 25 4
gpt4 key购买 nike

我有以下超一流的grails服务:

abstract class SuperClassService {
public def execute(def payload) {
def tracker = new TrackerDomain().save()
doWork()
tracker.status = 'done'
tracker.save()
}
protected abstract doWork(def payload);
}

普通 child 类学习了遵循以下模式的服务:
class SubClassService extends SuperClassService {
protected doWork(def payload){
new SomeDomain().save()
}
}

在我的 Controller 中,我启动了对各种子类的'execute'方法的调用。

我想要的是让SubClass服务遵循传统的Service模式,在该模式下会回滚任何问题,但是我希望在父类代码中创建的域既不回滚也不立即提交(以便可以在当子类服务代码仍在执行时,我将不将所有内容都设置为非事务性的,而只将子类中的函数设置为事务性的,如果这是唯一的选择,我也想知道。

最佳答案

您是否尝试过使用@Transactional(propagation = Propagation.REQUIRES_NEW)注释子类服务方法?我认为,不管外部服务代码是否具有事务性,它都应该可以解决问题。

关于grails - 如何构造Grails Services,使父类(super class)方法是非事务性的而子类方法是事务性的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27446146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com