참고로 DTO직접 조회를 더 도와주는 QueryDSL의 기능도 있다. 인터페이스만 이용해서 진행하는데, 이는 일반적으로 DTO Projection이라고 하는 듯 함.
내가 여기서 말한 DTO 직접조회는 JPQL constructor expression 이라고 한다.
페치조인이 항상 정답이진 않다.
그럼 이 둘의 선택 기준은 굳이 정하자면?
Vlad Mihalcea가 (누군지는 잘…) 강조하는 원칙은, 조회와 동일한 트랜잭션에서 엔티티를 수정할 계획이 있을때는 엔티티 전체를 가져오는게 의미가 있지만, 단순 조회만 할거라면 차라리 dto로 직접 조회하는게 더 저렴할 수 있다는 것임.
페치조인이 가장 간단한 해결책 같아보여도, 다음의 경우에는 dto로 직접 조회하는걸 고민해보자.