티스토리 뷰
728x90
반응형
SMALL
@Transactional 어노테이션 속성들
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 처리되지 않음.
@Transactional 적용 순서
@Transactional 어노테이션은, 메서드 뿐만 아니라 , 클래스나 인터페이스에 선언 가능
우선순위
1.메서드의 @Transactional
2.클래스의 @Transactional
3.인터페이스의 @Transactional
인터페이스에 가장 기준이 되는 @Transactional 설정을 지정하고, 클래스나 메서드에 필요한 어노테이션을 처리하는 것이 좋다.
728x90
반응형
LIST
'Spring boot study > 6. 트랜잭션' 카테고리의 다른 글
스프링에서 트랜잭션 관리 (0) | 2020.08.10 |
---|
댓글