728x90
트랜잭션 전파 (Propagation)
트랜잭션 전파는 스프링에서 트랜잭션 메서드가 이미 실행 중인 트랜잭션을 어떻게 처리해야 하는지를 제어하는 속성입니다.
스프링은@Transactional
어노테이션을 사용하여 트랜잭션 전파를 설정할 수 있습니다.
트랜잭션 전파 옵션
Propagation.REQUIRED
- 메서드가 이미 실행 중인 트랜잭션이 있는 경우 해당 트랜잭션을 재사용하고, 트랜잭션이 없는 경우에는 새로운 트랜잭션을 시작합니다.
Propagation.REQUIRES_NEW
- 메서드가 항상 새로운 트랜잭션을 시작하고, 이미 실행 중인 트랜잭션은 일시 중단됩니다.
Propagation.SUPPORTS
- 메서드가 이미 실행 중인 트랜잭션을 재사용하고, 트랜잭션이 없는 경우에도 트랜잭션 없이 실행됩니다.
Propagation.NOT_SUPPORTED
- 메서드가 이미 실행 중인 트랜잭션을 일시 중단하고, 트랜잭션 없이 실행됩니다.
Propagation.MANDATORY
- 메서드가 반드시 이미 실행 중인 트랜잭션이 있어야 하며, 그렇지 않으면 예외가 발생합니다.
Propagation.NEVER
- 메서드가 절대로 트랜잭션을 시작하지 않아야 하며, 이미 실행 중인 트랜잭션이 있으면 예외가 발생합니다.
트랜잭션 전파를 적절히 설정하면 다중 메서드 호출 시 트랜잭션 동작을 조율하고 원하는 트랜잭션 동작을 달성할 수 있습니다.
이것은 데이터베이스 트랜잭션을 효과적으로 관리하고 예외 처리를 수행하는 데 유용합니다.
728x90
'BackEnd > Spring Boot' 카테고리의 다른 글
트랜잭션 설정 및 아주아주 간단한 팁 (0) | 2024.02.03 |
---|---|
[간단한 성능 테스트] 간단한 성능 테스트_1 (DB Insert) (0) | 2024.01.20 |
구독 QueryDSL 및 Redis 사용 개발 (0) | 2023.08.27 |
JPA & QueryDSL 사용한 Project (0) | 2023.08.11 |
Spring Batch (0) | 2023.07.19 |