티스토리 뷰

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
댓글
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함