매일 까먹는 스프링 개념 정리 4
2018-09-14
1. 트랜잭션
1-1. 트랜잭션 개념
- 논리적 단위로 어떤 한 부분의 작업이 완료되었다 하더라도 다른 부분의 작업이 완료되지 않았을 경우 전체 취소하는 것이다
- 이 때 작업이 완료되는 것을 커밋(commit)이라고 하고, 작업이 취소되는 것을 롤백(rollback)이라고 한다
- 커맨드 패턴?
1-2. 트랜잭션 전파 속성
- 2개 이상의 트랜잭션이 작동할 때, 기존의 트랜잭션에 참여하는 방법을 결정하는 속성이다.
- PROPAGATION_REQUIRED(0): Default: 전체 처리
- PROPAGATION_SUPPORTS(1): 기존 트랜잭션에 의존 (바깥쪽의 트랜잭션이 없으면 없는걸로 처리)
- PROPAGATION_MANDATORY(2): 트랜잭션에 꼭 포함되어야 함 - 트랜잭션이 있는 곳에서 호출 되어야 함
- PROPAGATION_REQUIRES_NEW(3): 각각 트랜잭션 처리(별도 처리)
- PROPAGATION_NOT_SUPPORTED(4): 트랜잭션에 포함 하지 않음 - 트랜잭션이 없는 것과 동일함
- PROPAGATION_NEVER(5): 트랜잭션에 절대 포함하지 않음 - 트랜잭션이 있는 곳에서 호출하면 에러