Spring跨越方法的JPA事务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring跨越方法的JPA事务相关的知识,希望对你有一定的参考价值。

我有一个带有2个方法的spring存储库,这两个方法可以单独调用,也可以一起调用。我可以使用@Transactional注释进行单独的方法调用事务,但是如何跨方法进行事务处理。目标是当method2更新失败时也回滚method1。

答案

您需要定义@Transactional的传播。

标记所有方法

@Transactional(propagation = Propagation.REQUIRED)

REQUIRED意味着如果没有从调用方法中打开一个新事务,它将打开一个新事务。如果有一个高开的交易,它就会被使用。

如果您需要单独的交易,请使用Propagation.REQUIRES_NEW

阅读更多here

以上是关于Spring跨越方法的JPA事务的主要内容,如果未能解决你的问题,请参考以下文章

Spring JPA事务通过多种方法

JPA事务不生效原因

Spring data JPA:未提交每条记录的事务

spring spring data jpa save操作事务

Spring Data JPA + Hibernate 将方法标记为事务

测试期间的Spring Boot JPA事务 - 不会在插入时抛出密钥违例异常