gpt4 book ai didi

grails - 在事务 Controller Action 内部执行事务服务调用

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

这两个 Controller Action 之间有什么区别:

  @Transactional
def save(SomeDomain someDomain) {
someDomain.someProperty = firstService.createAndSaveSomething(params) //transactional
someDomain.anotherProperty = secondService.createAndSaveSomething(params) //transactional
someDomain.save(flush: true)
}


    def save(SomeDomain someDomain) {
combinedService.createAndSave(someDomain, params) //transactional, encapsulating first and second service calls
}

我的目的是在事务失败时回退整个save()操作。但不确定我应该使用哪一个。

最佳答案

您可以使用两种方法。

firstServicesecondService引发异常时,您的 list 1将回滚 Controller 事务。

在 list 2中(我希望createAndSavecombinedService方法用@Transactional注释),如果createAndSave抛出异常,它将回滚事务。使用此方法的最大好处是,该服务方法在理论上可在其他 Controller 中重用。

关于grails - 在事务 Controller Action 内部执行事务服务调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001964/

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