개발을 잘하고 싶은 개발자

[Spring] Transactions Propagation Option with Spring JPA 본문

Backend/spring

[Spring] Transactions Propagation Option with Spring JPA

_소피아 2021. 8. 18. 23:52

출처  https://www.baeldung.com/transaction-configuration-with-jpa-and-spring

https://taetaetae.github.io/2016/10/08/20161008/

propagation ( 전파옵션)

  • REQUIRED : 부모 트랜잭션 내에서 실행하며 부모 트랜잭션이 없을 경우 새로운 트랜잭션을 생성
  • REQUIRES_NEW : 부모 트랜잭션을 무시하고 무조건 새로운 트랜잭션이 생성
  • SUPPORT : 부모 트랜잭션 내에서 실행하며 부모 트랜잭션이 없을 경우 nontransactionally로 실행
  • MANDATORY : 부모 트랜잭션 내에서 실행되며 부모 트랜잭션이 없을 경우 예외가 발생
  • NOT_SUPPORT : nontransactionally로 실행하며 부모 트랜잭션 내에서 실행될 경우 일시 정지
  • NEVER : nontransactionally로 실행되며 부모 트랜잭션이 존재한다면 예외가 발생
  • NESTED : 해당 메서드가 부모 트랜잭션에서 진행될 경우 별개로 커밋되거나 롤백될 수 있음. 둘러싼 트랜잭션이 없을 경우 REQUIRED와 동일하게 작동
@Transactional(propagation = Propagation.REQUIRED)
public void doSomething() { ... }