본문 바로가기
Spring

@NotFound 어노테이션

by devLog by Ronnie's 2022. 8. 3.

들어가며


해당 어노테이션은 연관관계에서 조인한 대상의 값이 존재하지 않는 경우에 발생하는 EntityNotFoundException의 발생을 무시할 수 있는 어노테이션 옵션을 가지고 있다.

 

설계가 조인 대상의 값이 없더라도 진행되도록 하기위해서는 @NotFound 어노테이션의 IGNORE 옵션을 사용하면 된다.

 

 

@NotFound 옵션별 설명 및 예외발생


@NotFound(action = NotFoundAction.IGNORE) 와 @NotFound(action = NotFoundAction.EXCEPTION) 이렇게 두가지가 있다.

 

먼저 IGNORE 옵션은 아래 설명에도 나와 있듯이 존재하지 않더라도 무시하는 것이고 EXCEPTION 옵션은 EntityNotFoundException을 발생시킨다. EXCEPTION 옵션을 설정하지 않았더라도 해당 옵션이 디폴트 값이기 때문에 따로 설정하지 않으면 Exception이 발생하는 것이다. 

 

그러니 해당 예외를 발생시키지 않고 싶다면 IGNORE 옵션 설정을 해주자.

 

디버깅을 해보면 해당 엔티티에 다음과 같이 exception이 발생했다고 알려준다.

콘솔에도 마찬가지로 해당 exception 로그가 남아있다.

 

해당 예외를 무시하고 싶다면 다음과 같이 선언해주자

 

댓글