Spring/Spring Boot
[Spring Data Jpa] delete(Entity e) vs deleteById 차이
민돌v
2022. 9. 26. 18:06
그저 궁금해서 알아보는 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);
}
성능적인 이슈는 두 메소드의 차이가 없는 것 같습니다!!
*참고