본문 바로가기
개발 이야기/Spring

Transactional 어노테이션 속성

by 강한페페 2020. 2. 12.
반응형

1. 전파(Propagation) 속성

- PROPAGATION_MADATORY : 작업은 반드시 특정한 트랜잭션이 존재한 상태에서만 가능

- PROPAGATION_NESTED : 기존에 트랜잭션이 있는 경우, 포함되어서 실행

- PROPAGATION_NEVER : 트랜잭션 상황하에 실행되면 예외 발생

- PROPAGATION_NOT_SUPPORTED : 트랜잭션이 있는 경우엔 트랜잭션이 끝날 때까지 보류된 후 실행

- PROPAGATION_REQUIRED : 트랜잭션이 있으면 그 상황에서 실행, 없으면 새로운 트랜잭션 실행(기본설정)

- PROPAGATION_REQUIRED_NEW : 대상은 자신만의 고유한 트랜잭션으로 실행

- PROPAGATION_SUPPORTS : 트랜잭션을 필요로 하지 않으나, 트랜잭션 상황하에 있다면 포함되어서 실행

 

2. 격리(Isolation) 레벨

- DEFAULT : DB 설정, 기본 격리 수준(기본설정)

- SERIALIZABLE : 가장 높은 격리, 성능 저하의 우려가 있음

- READ_UNCOMMITED : 커밋되지 않은 데이터에 대한 읽기를 허용

- READ_COMMITED : 커밋된 데이터에 대해 읽기 허용

- REPEATEABLE_READ : 동일 필드에 대해 다중 접근 시 모두 동일한 결과를 보장

 

3. Read-only 속성

- true인 경우 insert, update, delete 실행 시 예외 발생, 기본 설정은 false

 

4. Rollback-for-예외

- 특정 예외가 발생 시 강제로 Rollback

 

5. No-rollback-for-예외

- 특정 예외의 발생 시에는 Rollback 처리되지 않음

반응형