데이터 접근 예외 직접 만들기
데이터베이스 오류에 따라 특정 예외는 복구하고 싶을 수 있음
데이터를 DB에 저장할 때 같은 ID가 이미 데이터베이스에 저장되어 있으면
>> 데이터 베이스는 오류 코드를 반환하고 JDBC 드라이버는 SQLException을 던짐
>> 여기에는 데이터베이스가 제공하는 errorCode 들어있음
스프링 예외 추상화
스프링은 데이터 접근 계층에 대한 수십 가지 예외를 정리해 일관된 예외 계층 제공
각 예외는 특정 기술에 종속적이지 않게 설계
JDBC나 JPA를 사용할 때 발생 예외를 스프링이 제공하는 예외로 변환하는 역할도 제공
NonTransient 예외
>> 일시적, 동일 SQL를 다시 시도했을 때 성공 가능성
>> 쿼리 타임아웃, 락과 관련된 오류들
Transient 예외
>> 일시적 x, 동일 SQL 반복 시 실패
>> SQL 문법 오류, 데이터베이스 제약 조건 위배
스프링 예외 변환기를 통해 SQLException의 errorCode에 맞는 적절한 스프링 데이터 접근 예외로 변환
>> 서비스, 컨트롤러에서 예외 처리 필요시 특정 기술에 종속적인 SQLException 대신 스플링 데이터 접근 예외 사용
출처 : 김영한, 스프링 DB 1편 - 데이터 접근 핵심 원리
'Spring' 카테고리의 다른 글
DB / Spring JdbcTemplate (0) | 2025.04.27 |
---|---|
DB / 데이터 접근 기술 (0) | 2025.04.26 |
DB / 자바 예외 (0) | 2025.04.23 |
DB / 스프링과 문제 해결 - Transaction (0) | 2025.04.22 |
DB / Transaction (0) | 2025.04.21 |