Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- jpa에러
- json
- JoinColumn
- queryDSL
- JPA주의사항
- 스프링 부트 기능
- Unsatisfied dependency
- Spring Spring boot 차이
- ERD 작성
- jpa회원가입
- @IdClass
- git
- json gson 차이
- 복합키
- REST API 규칙
- 1차캐시
- jwt메서드
- 스프링 부트 공식 문서
- github
- uncheck Exception
- Filter
- 스프링부트오류
- Q 클래스
- 인텔리제이
- spring서버
- REST란
- Error creating bean with name
- 빈생성안됨
- 최종 프로젝트
- JPA
Archives
- Today
- Total
Everyday Dev System
checked, unchecked Exception - rollback 이슈 본문
Exception에 대한 글
2023.08.04 - [나의 호기심] - Exception 뜯어보기
checked, unchecked Exception - rollback 이슈
checked Exception은 기본적으로 rollback을 하지 않는다.
여러 DB 작업을 Transaction으로 묶지 않고 수행하는 상황에서 checked Exception이 발생하면,
수행한 데이터 관련된 작업이 RollBack 되지 않고 Commit되어 그대로 DB에 반영이 된다.
그러므로, DB CUD 시에는 @Transaction(ReadOnly = false) 를 기재하는 것을 권장한다.
서버를 run하여 컴파일하는 시점(.class 생성)에 발생하여 서버가 stop되는 예외
package refill.station.config.annotation;
import org.springframework.transaction.annotation.Transactional;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional(rollbackFor = Throwable.class)
public @interface TransactionalWithRollback {
}
unchecked Exception은 rollback을 수행한다.
(runtime Exception은 대표적인 unchecked Exception이다.
서버가 구동 중에 예외되는 처리.
임의의 예외 클래스를 만들어 예외 처리를 하는 경우가 많다.
허나, 일반적으로 실행시 예외를 처리할 수 있는 경우에는 RuntimeException 클래스를 확장해
Unchecked Exception을 사용하는 것이 좋다고 한다.
reference :
선우 튜터님의 7월 21일 후발대 강의의 일부 발췌 → 초상권으로 인해 링크 참조 불가
'내배캠 주요 학습 > 매일 공부' 카테고리의 다른 글
React로 프론트 구현하기 (0) | 2023.08.08 |
---|---|
Task-Rail, 협업을 위한 Rail 기획 (0) | 2023.08.07 |
OAuth , Mokito (0) | 2023.07.30 |
너의 의견은 : 투표 게시판, KPT 회고 (0) | 2023.07.24 |
개발 인생 : 개발자 커뮤니티 회고 (0) | 2023.07.07 |