는 다음과 같은 세 가지 하이버 네이트 엔티티를 고려? 특히 휠을 가져올 때 차바퀴가 인출되도록 subselect에 참여하고 싶습니다. 물론 FetchType을 EAGER로 변경하면이 작업을 수행 할 수 있지만 쿼리 기반 쿼리가 필요합니다.제어 Hibernate의 생성 부속
현재 코드는 Hubcaps를 가져 오기 위해 다른 select를 생성해야합니다.
는 다음과 같은 세 가지 하이버 네이트 엔티티를 고려? 특히 휠을 가져올 때 차바퀴가 인출되도록 subselect에 참여하고 싶습니다. 물론 FetchType을 EAGER로 변경하면이 작업을 수행 할 수 있지만 쿼리 기반 쿼리가 필요합니다.제어 Hibernate의 생성 부속
현재 코드는 Hubcaps를 가져 오기 위해 다른 select를 생성해야합니다.
연구의 많은 후에이 적어도 최대 절전 모드를 확장하지 않고,이 단계에서 불가능하다는 것을 나타납니다.
예 당신이 기준을 사용하지만, 단지 그러나 나는 HQL 오히려 기준을 사용하는 것이 좋습니다 것, 기준에 조인 찾는 방법은 완료 기억이 안 할 수는 훨씬 더 읽을 수 :
select c
from Car c join fetch c.wheels
where ...
당신이 할 수있는 setFetchMode 메소드를 사용하여 기준 조회에서 반입 유형을 변경하십시오.
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/querycriteria.html
이것은 생성되는 subselect 조회에는 영향을주지 않습니다. – Zecrates
필자는 기준으로이를 수행해야하는 올바른 이유가 있습니다. 필자는 절대적으로 필요한 경우가 아니라면 지금 당장은 그럴 수 없습니다. 또한, Hibernate.initialize (car.getWheels())를 호출 할 때 HQL 솔루션을 사용하면 "자동"으로 적용되지 않습니다. – Zecrates
HQL에서 "join fetch"를 사용하면 wheel colletion을 열심히로드 할 것이므로 Hibernate.initialize()를 호출 할 필요가 없습니다. view_sql 플래그를 활성화하고, 생성 된 쿼리의 차이점을 확인하십시오. part ** join f.wheels ** –
문제점 실제 엔티티에서로드해야하는 OneToMany 관계가 여러 개이기 때문에 Cartesian 조인을 피하기 위해 subselect를 사용해야합니다. – Zecrates