@Transactional

LEE YUJIN·2023년 5월 19일
0

트랜잭션

목록 보기
2/4

트랜잭션 적용 -> @Transactional

@Transactional
    public void saveUser(UserCreateRequest request){
        userRepository.save(new User(request.getName(), request.getAge()));
        throw new IllegalArgumentException();
    }

에러 발생 시 트랜잭션을 붙이지 않으면 어떤일이?
1. userRepository.save(new User(request.getName(), request.getAge())); - 실행
2. throw new IllegalArgumentException(); - 여기서 에러 걸림
서버내부 오류는 나지만 save 쿼리가 이미 실행되어 저장됨

트랜잭션을 붙이면
예외처리 되면서 rollback해 저장도 되지 않는다.

주의사항
IOException과 같은 Checked Exception은 rollback이 일어나지 않는다.

profile
개발 공부노트

0개의 댓글