微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring 中的传播级别支持

如何解决Spring 中的传播级别支持

根据文档,支持当前事务,如果不存在则以非事务方式执行。这意味着如果交易不可用,那么它将以非交易方式执行,而不会创建新的交易权限。但是我有一个方法注释为下面为什么 spring 正在创建新事务。

@Override
@Transactional(propagation = Propagation.SUPPORTS)
public String saveMessageData(String message) {
    Message message = new Message(message);
    messageRepository.save(message);
    return "Message Saved.";
}

在调试控制台中,我看到了以下语句

osorm.jpa.JpaTransactionManager:创建名为 [org.springframework.data.jpa.repository.support.SimpleJpaRepository.save] 的新事务:PROPAGATION_required,ISOLATION_DEFAULT

从服务类的控制器调用方法 saveMessage()。认为在没有可用的现有事务之前并期望 saveMessage 方法应该以非事务方式执行但 spring 正在创建新事务。甚至尝试过 NEVER(根据文档,非事务性执行,如果 tx 存在则抛出异常)和 NOT_SUPPORTED(根据文档,非事务性执行,如果存在则暂停当前事务)-在所有这 3 种情况下,spring 总是创建新的具有必需传播的事务。我错过了什么要理解的东西吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?