gpt4 book ai didi

grails:维护从服务到 Controller 的事务上下文

转载 作者:行者123 更新时间:2023-12-02 13:59:20 25 4
gpt4 key购买 nike

在设置了回滚标志的 grails 服务类中有一个事务:

TransactionAspectSupport
.currentTransactionInfo()
.transactionStatus
.setRollbackOnly()

发生的情况是,当我们返回 Controller 时出现异常:
org.springframework.transaction.UnexpectedRollbackException

我们必须在 Controller 中捕获它(但不是在任何服务类中)。这段代码是从之前的解决方案中重构的,其中所有逻辑都直接发生在 Controller 中。任何有关在方法返回时引发此异常的情况的建议,假设:
static transactional = true

已在所有类上设置。猜测有一些微妙的 Controller 诗句服务魔术正在发生 - 有谁知道这一点?现在只是捕获异常作为一种解决方法,但这会丢失否则会返回的 TransactionStatus 对象。

任何想法都非常感谢

最佳答案

Grails 中的事务管理非常难看(对我而言)。
所以我提供 Spring 声明性事务:
Chapter 9. Transaction management
它们在 grails 服务中完美运行。

返回到 setRollbackOnly()。这种方法并不简单......虽然您在内部事务中设置了 RollBack=true ,但您触发了将外部事务回滚到 sou 的情况,但您会遇到异常。

我前段时间遇到过类似的问题 - 这里有一些有用的信息可以找到适合您的最佳解决方案:

  • AbstractPlatformTransactionManager.setGlobalRollbackOnParticipationFailure(false)
  • Grails - Declarative Transactions
  • Declarative transactions don't works in 1.3.x ?
  • 关于grails:维护从服务到 Controller 的事务上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3833744/

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