테스트할때 사용할 수 있음
어노테이션방식으로 @Transactional을 메소드, 클래스, 인터페이스 위에 추가하여 사용함.
이걸 선언적 트랜잭션이라 하며, 프록시 객체가 생성되어 자동으로 commit또는 rolback을 진행함.
@Transactional
public void addUser(UserDTO dto) throws Exception{
. . .
}
@Transactional 옵션
- isolation 트랜잭션에서 일관성 없는 데이터 허용 수준을 설정함
- propagation 트랜잭션 동작 도중 다른 트랜잭션을 호출 할 때 어떻게 할 지 지정함
- noRollbackFor 특정 예외 발생 시 rollback하지 않음.
- rollbackFor 특정 예외 발생 시 rollback 함
- timeout 지정한 시간 내 메소드 수행 완료되지 않으면 rollback (-1은 timeout 없음)
- readOnly 읽기전용으로 설정함
- @Transactional은 기본적으로 Unchecked Exception, Error 만을 rollback함
모든 예외에 대해서 rollback 하고 싶으면 (rollback = Excepion.class)옵션을 줘야 함
'Program > Spring Framework' 카테고리의 다른 글
[Spring Security] 스프링시큐리티 시작하기 /기본세팅 (0) | 2022.06.23 |
---|---|
[Spring] Interceptor (0) | 2022.04.20 |
[SpringBoot] @Controller VS @RestController (0) | 2022.04.20 |
[SPRING]스프링(Spring)에서 자주 사용하는 Annotation 개념 및 예제 정리 (0) | 2022.03.25 |
[Spring Boot] 스프링 부트에서 테스트 코드 작성하기 (0) | 2020.06.15 |