JPA 예외

wangjh789·2022년 8월 18일
0

[Spring] 스프링-DB-2

목록 보기
6/21

EntityManager는 순수한 JPA 기술이고 스프링과 관계가 없다. 따라서 엔티티 매니저는 예외가 발생하면 JPA 관련 예외를 발생시킨다.
(JPA는 PersistenceException과 그 하위 예외를 발생시킨다. + IllegalStateException, IllegalArgumentExcpetion)

어떻게 JPA 예외를 스프링 예외 추상화 DataAccessException로 변환할 수 있을까?
-> @Repository
@Repository가 붙은 클래스는 컴포넌트 스캔의 대상이 되고, 예외 변환 AOP의 적용 대상이 된다.
스프링과 JPA를 함께 사용하는 경우 스프링은 JPA 예외 변환기 PersistenceExceptionTranslator를 등록한다.
예외 변환 AOP 프록시는 JPA 관련 예외가 발생하면 JPA예외 변환기를 통해 발생한 예외를 스프링 데이터 접근 예외로 변환한다.

profile
기록

0개의 댓글