면접 - 스프링프레임워크

개발자 면접 질문 - 트랜잭션 전파 옵션

snow-line 2020. 12. 3. 20:53
반응형

1. 전파 옵션

 1) REQUIRED

   - 기본 속성. 부모 트랜잭션 내에서 실행하며 부모 트랜잭션이 없을 경우 새로운 트랜잭션을 생성한다.

 

 2) SUPPORTS

   - 이미 시작된 트랜잭션이 있으면 참여하고 이외에는 트랜잭션 없이 진행하게 만든다.

 

 3) REQUIRES_NEW

   - 부모 트랜잭션을 무시하고 무조건 새로운 트랜잭션이 생성된다.

 

 4) MADATORY

  - REQUIRED와 비슷하게 이미 시작된 트랜잭션이 있으면 참여한다.

  - 트랜잭션이 없을 경우에는 예외를 발생한다.

  - 혼자서는 독립적으로 트랜잭션을 진행하면 안되는 경우에 사용한다.

 

 5) NOT_SUPPORTED

  - 트랜잭션을 사용하지 않게 한다.

  - 이미 진행 중인 트랜잭션이 있으면 보류 시킨다.

 

 6) NAVER

  - 트랜잭션을 사용하지 않도록 강제한다.

  - 이미 진행 중인 트랜잭션도 존재하면 안되며 있을 경우 예외를 발생시킨다.

 

 7) NESTED

  - 이미 진행중인 트랜잭션이 있으면 중첩 트랜잭션을 시작한다.

  - 중첩된 트랜잭션은 먼저 시작된 부모 트랜잭션의 커밋과 롤백에 영향을 받지만, 자신의 커밋과 롤백은 부모 트랜잭션에 영향을 미치지 않는다.

반응형