🌐 웹개발/웹 개발

Spring @Transactional 어노테이션 적용 안될 때 | try-catch문, 체크드 예외

2025. 1. 3. 10:49
목차
  1. 앙딱정
  2. 🌈Try-cath 문 사용 시
  3. 방법1 | 예외 재발생
  4. 방법 2 | 롤백 강제
  5. 🚀체크드 예외
  6. 예시

까먹기전에 짧게 정리. 분명 어노테이션을 적용했는데도 롤백이 되지 않아서 찾아봤다.

 

앙딱정

1. @Transactionl 어노테이션을 썼다 해도  try-catch문으로 예외 처리를 한다면 롤백이 적용되지않는다. 따라서 catch문에서 예외를 다시 발생시키거나, 강제로 롤백을 실행해야한다.

2. 체크드 예외를 적용했을 경우 따로 어노테이션에 rollbackFor 속성을 추가해야한다.

 

🌈Try-cath 문 사용 시

한 줄 정 리 : catch문 안에 throw new Exception(); 을 넣어서 예외를 발생시켜야 한다

방법1 | 예외 재발생

@Transactional
public void yourMethod() {
    try {
        // 비즈니스 로직
    } catch (Exception e) {
        // 예외를 로깅하거나 추가 작업 수행
        System.out.println("Exception occurred: " + e.getMessage());

        // 예외를 다시 발생시켜 롤백 트리거
        throw new RuntimeException("Forced rollback due to exception", e);
    }
}

 

 

방법 2 | 롤백 강제

import org.springframework.transaction.interceptor.TransactionAspectSupport;

@Transactional
public void yourMethod() {
    try {
        // 비즈니스 로직
    } catch (Exception e) {
        // 롤백 강제
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        System.out.println("Rollback forced due to exception: " + e.getMessage());
    }
}

 

 

🚀체크드 예외

체크드 예외(Checked Exception)는 기본적으로 롤백되지 않음

  • rollbackFor 속성을 통해 롤백 대상을 명시적으로 설정해야 함.

한 줄 정 리 : throws로 던지는 예외가 존재하는 경우에는 rollbackFor 속성을 추가해라

예시

@Transactional(rollbackFor = Exception.class)
public void yourMethod() throws IOException {
    throw new IOException("Checked exception occurred");
}

 

그럼 다들 홧팅

728x90
저작자표시 (새창열림)

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

[Spring boot | Nuxt | Vue] 외부 접근 허용 CORS에러  (0) 2025.01.31
오즈리포트, 정리를 안 할 수가 없다  (1) 2024.09.13
[jQuery | 제이쿼리] 유효성 검사 플러그인 jQuery Validation Plugin  (0) 2024.03.18
| JS 자바스크립트 | 자바스크립트 엔진 / 실행 컨텍스트 / 스코프  (0) 2024.03.13
이클립스 Eclipse ES6 문법 오류 | 빨간 밑줄 없애기  (0) 2024.02.19
  1. 앙딱정
  2. 🌈Try-cath 문 사용 시
  3. 방법1 | 예외 재발생
  4. 방법 2 | 롤백 강제
  5. 🚀체크드 예외
  6. 예시
'🌐 웹개발/웹 개발' 카테고리의 다른 글
  • [Spring boot | Nuxt | Vue] 외부 접근 허용 CORS에러
  • 오즈리포트, 정리를 안 할 수가 없다
  • [jQuery | 제이쿼리] 유효성 검사 플러그인 jQuery Validation Plugin
  • | JS 자바스크립트 | 자바스크립트 엔진 / 실행 컨텍스트 / 스코프
두_두
두_두
피할 수 없으면 냅다 즐겨버리기 💚
왜안되지피할 수 없으면 냅다 즐겨버리기 💚
두_두
왜안되지
두_두
전체
오늘
어제
  • 분류 전체보기 (96)
    • 🌐 웹개발 (30)
      • React (4)
      • 웹 개발 (17)
      • API (3)
    • 💡코딩테스트 (56)
      • 프로그래머스 (49)
      • Leetcode (4)
      • 백준 (3)
    • 📓STUDY (10)
      • 알고리즘 (5)
      • OS (3)
      • 네트워크 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 쉿🤫 두_두는 블로그 이사중🚛

인기 글

태그

  • 제이쿼리
  • 그리디
  • 리트코드
  • set
  • DP
  • 코테
  • 코딩테스트
  • 자바스크립트
  • vue
  • BFS
  • 뷰
  • nuxt
  • react
  • dfs
  • 파이썬
  • 그래프
  • leetcode
  • jQuery
  • 개발
  • programmers
  • JavaScript
  • 리액트
  • Github
  • deque
  • 프로그래머스
  • JS
  • Python
  • 컨텍스트
  • github pages
  • 공룡책

최근 댓글

최근 글

hELLO · Designed By 정상우.
두_두
Spring @Transactional 어노테이션 적용 안될 때 | try-catch문, 체크드 예외
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.