- 존재 여부를 확인할 때는 existBy
- Id 값만 사용할 엔티티가 필요한 경우에는 getBy
- Id 이외의 데이터도 사용하는 엔티티의 경우에는 findBy
existBy보다 findBy가 더 성능이 좋다!!!
JPA의 exist 는 exists 쿼리를 날리는게 아니라, count 쿼리를 날립니다. ( count 쿼리는 무거움. )
exists 쿼리는 첫번째 결과에서 바로 true를 리턴하지만,
count 쿼리의 경우 총 몇건인지 확인하기에 성능차이가 날수밖에 없음.
BUT JPA에서는 자동으로 limit 1을 추가하기에 큰 차이는 안난다고함.
getby는 존재하는지 여부를 확인할때는 적절하지 않음.
유저의 ID값을 제외한 데이터는 필요없는경우, 즉 실제 테이블을 조회하지 않고도 객체를 생성할 경우 getbyId가 유리함!!
getById로 가져온 프록시 객체를 실제 엔티티로 변환하려면 @Transactional 어노테이션이 필요함.
참고 :
https://velog.io/@_koiil/JPA-existById-vs.-getById-vs.-findById
[JPA] existById vs. getById vs. findById
무엇을 쓰는게 좋을까요
velog.io
'TIL' 카테고리의 다른 글
ResultSet (0) | 2022.12.13 |
---|---|
면접준비 쪼금만 (0) | 2022.12.02 |
redis란 (0) | 2022.11.21 |
Service에서 Service를 의존해도 될까? (0) | 2022.11.17 |
Objects.requireNonNull 사용 이유 (0) | 2022.11.16 |