그저 궁금해서 알아보는 jpa delete 와 deletById 의 차이점
결론부터 말하면 똑같다.
- deleteById 는 findbyId + delete(entity e) 의 과정이 합쳐진 메소드라고 볼 수있습니다.
👏🏻 두 메소드의 차이점은
- deleteById를 사용하면 내부적인 findById 조회 시 값이 없을 경우 EmptyResultDataAccessException 이 발생한다는 점 입니다.
- 따라서 엔티티조회시, 커스텀한 익셉션을 떨어트려 메세지를 담고싶다면 delete 를 사용하는게 마음이 더 편하다..?
public Notice getNotice(final Integer idx) {
return noticeRepository.findById(idx).orElseThrow(
() -> new EntityNotFoundException(idx + " 에 해당하는 공지사항이 없습니다.")
);
}
public void delete(final Integer idx) {
noticeRepository.delete(getNotice(idx));
}
public void deleteById(final Integer idx) {
noticeRepository.deleteById(notice);
}
성능적인 이슈는 두 메소드의 차이가 없는 것 같습니다!!
*참고
'Spring > Spring Boot' 카테고리의 다른 글
[Spring] Webclient 란❓ (RestTemplate vs WebClient) (2) | 2022.11.08 |
---|---|
[Spring] 로그 프레임워크와 로그백이란 - 로깅에 대해 알아보자 (0) | 2022.10.24 |
JPA DTO PROJECTION - 클래스 기반, 인터페이스 기반 (0) | 2022.09.15 |
[Spring] Spring JWT 인코딩, 디코딩 하기 - Java Json 파싱 (0) | 2022.08.23 |
[Spring] jwt란 - jwt 내부구조, 동작과정, 스프링에서 파싱하기 (0) | 2022.08.18 |