2010-07-11 3 views
5

다음은 열심히로드 된 콜렉션을 반환하려고 시도하고있는 엔티티의 예제입니다.NHibernate Eager Loading Collections + 페이징

믹스 -> 트랙 (컬렉션) -> 태그 (컬렉션)

내가 페이징하지 않고, 열망로드 트랙 & 태그를 믹스의 페이지 된 목록을 반환 할 필요는 미래 <를 사용하여 relativly 간단합니다 >() 함수를 사용하여 트랙 + 태그에 대한 여러 쿼리를 실행합니다.

이 데이터는 페이징해야하기 때문에 NHibernate가 데이터를 표시 할 때 NHibernate가 N + 1 문제를 갖지 않도록 어떻게 모든 데이터를 다시 가져올 수 있습니까? 폴

답변

5
  1. 는 어떤 트랙 또는 태그없이 원하는 믹스 페이지 를 가져옵니다. 위의 단계에서 모든 믹스 당신이 가져온에 해당

  2. 모든 트랙 가져 오기 (왼쪽 가입 태그) (즉, 당신은 HQL을 사용하는 경우, 모든 믹스 ID를 전달하는 SetParameterList 사용)

총 : 2 개의 검색어.

+0

믹스에 해당한다고 할 때, 내 믹스의 ID에서 IN() 절을 사용한다는 것을 의미합니까? –

+0

@ Paul Hinett : 정확하게. –

+0

고마워요 ... 말이 되네요! –

관련 문제