본문 바로가기

IT/개발

Spring Transactional annotation

Spring에서 Transaction이란 쉽게 요약하자면
여러번의 DBConnection이 있을경우 설정해주는 기능을 말한다.

A테이블을 Delete 후 B테이블에 Insert할때
에러가 발생했을시 Transaction에 의해서 자동으로 Rollback이 되는 설정을 할 수도 있다.

스프링에서 제공하는 Transactional annotation 의 메소드는 
https://docs.spring.io/spring/docs/5.0.4.BUILD-SNAPSHOT/javadoc-api/org/springframework/transaction/annotation/Transactional.html

 

Transactional (Spring Framework 5.0.4.BUILD-SNAPSHOT API)

 

docs.spring.io

이곳을 참고하면 좋을것 같다.

그 중에서도 중요하다고 생각하는 옵션인 propagation

  • REQUIRED : 부모 트랜잭션 내에서 실행하며 부모 트랜잭션이 없을 경우 새로운 트랜잭션을 생성
  • REQUIRES_NEW : 부모 트랜잭션을 무시하고 무조건 새로운 트랜잭션이 생성(default)
  • SUPPORT : 부모 트랜잭션 내에서 실행하며 부모 트랜잭션이 없을 경우 nontransactionally로 실행
  • MANDATORY : 부모 트랜잭션 내에서 실행되며 부모 트랜잭션이 없을 경우 예외가 발생
  • NOT_SUPPORT : nontransactionally로 실행하며 부모 트랜잭션 내에서 실행될 경우 일시 정지
  • NEVER : nontransactionally로 실행되며 부모 트랜잭션이 존재한다면 예외가 발생
  • NESTED : 해당 메서드가 부모 트랜잭션에서 진행될 경우 별개로 커밋되거나 롤백될 수 있음. 둘러싼 트랜잭션이 없을 경우 REQUIRED와 동일하게 작동

 

'IT > 개발' 카테고리의 다른 글

스프링 form태그  (0) 2019.10.09
Java 파일 읽기, 파일 쓰기  (0) 2019.10.08
Spring Thread(스프링 쓰레드처리)  (0) 2019.09.26
Oracle LISTAGG  (0) 2019.09.12
JAVA CSV파일 엑셀에서 열때 숫자를 문자로 인식  (0) 2019.09.09