공부거리

JPA - findById() vs existById()

cocodingding 2024. 1. 2. 23:54

Null체크 국밥부 장관 findById()와 existById()

둘의 차이점을 알아보고 어떤 상황에서 어떤 메소드가 적절한지, 성능이 좋은지 알아보자

 

findById() vs existById()

리턴 값

findById -> Entity 반환

existById -> boolean 반환

즉, 로직 간 엔티티 자체가 필요한 경우 findById()

존재 여부만 체크하면 된다 -> existById()

 

쿼리문

findById()

https://sjparkk-dev1og.tistory.com/147

findById는 select쿼리를 날리는 것을 볼 수있다.

 

existById

existById는 count 쿼리를 날린다.

 

성능

count쿼리를 사용하게 되면 결국 총 몇건인지를 확인하기 위해 전체를 확인해야하기 때문에 성능 차이가 날 수 밖에 없지만,
JpaRepository의 메소드 쿼리에선 내부적으로 limit 1을 사용하고 있기 때문에 성능상 이슈가 없다.