# 페치 조인 주의점!
# 페치 조인 주의점!
페치조인을 사용할 때 몇가지 조심해야하는 부분이 있다.
- 페치조인은 별칭을 유의해서 사용해라.
- 컬렉션을 2개 이상 조인할 수 없다.
- 컬렉션을 페치조인하면 페이징을할 수 없다.
# 1. 페치조인은 별칭을 유의하여 사용해라.
페치조인을 할 때 별칭을 사용할 수 없다. 왜냐하면 만약 페치조인으로 값을 가져왔는데 그 별칭을 where절에서 사용하여 나오는 결과값을 일부 줄였다고 생각해보자. 그렇게 되면 페치조인으로 나오게 되는 결과는 두 개의 테이블을 조인하여 모두 가져오는 값들인데 일부 값이 없어지게 된다. 페치조인으로 별칭을 사용하는것은 겹겹이 페치조인으로 가져와야하는 경우를 제외하고는 사용하는 것을 자제해야한다.
# 2. 컬렉션을 2개 이상 조인할 수 없다.
컬렉션을 조인할 때 쓸데없는 데이터가 많이 생겨나는 것을 알 수 있다. 따라서 컬렉션을 2개이상 조인하는 일은 해서는 안된다.
# 3. 컬렉션을 페치조인하면 페이징을 할 수 없다.
컬렉션 페치조인을 하게되면 당연히 페이징기능은 사용해서는 안된다. 컬렉션값을 조인하게되면, 중복되는 데이터가 많아지게 된다. 이 때 페이징으로 데이터를 일부 가져가게 되면 손실이 발생하게 된다. 따라서 이러한 경우는 일반 조인을 사용해서 가져와야한다.
그런데, 그렇게 하면 N+1문제가 발생하는것이 불가피하다. 따라서 이 경우에는 일반 조인을 사용해주고 추가로 batch size를 지정하여 데이터를 여러개 동시에 가져오는 sql을 날릴 수 있도록 설정하여 조정할 수 있다.