gpt4 book ai didi

java - 嵌套的 Spring Transaction 从不回滚

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:23 26 4
gpt4 key购买 nike

我正在处理一个服务层,它在执行任务时记录到数据库。我想确保这个日志不会在发生错误时回滚,因为我应该始终记录失败的尝试。下面是示例代码来解释我想要什么。

@Transactional(rollbackFor=Exception.class)
public void performTask()
{
//Perform task 1
log("task1Complete");

//Perform task 2
log("task2Complete");
}

@Transactional()
public void log(String message)
{
//commit message to DB
//This should never rollback
}

我假设这样做的方法是开始一个新的交易,但我不确定如何去做。

最佳答案

你想使用:

@Transactional(propagation = Propagation.REQUIRES_NEW)

参见:Propagation

此外,您的 TransactionManager 必须配置为 allow nested transactions .

关于java - 嵌套的 Spring Transaction 从不回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010670/

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