이전의 "클래식 ASP"응용 프로그램을 J2EE/Hibernate로 마이그레이션하는 중입니다. 나는 SQL 문 다음과 같은 유형의 문제를 가지고 :최대 절전 모드 그룹화
SELECT parent.id, parent.name, parent.column1, count(child.id) AS no_of_children
FROM parent
INNER JOIN child ON child.parent_id = parent.id
GROUP BY parent.id, parent.name, parent.column1
어떻게 HQL이 같은 무언가를 표현합니까? 나는 아이들을 (many-to-one을 사용하여) 콜렉션으로 매핑하려고 시도했다. 콜렉션 사이즈로부터 아이들의 수를 얻으려고했으나, Hibernate는 각각의 부모에 대해 모든 "자식"엔티티를 개별적으로로드해야했다.
결과적으로 성능상의 문제로 인해 1 대신 약 1000 개의 DB 쿼리가 실행됩니다.
이 문제가 발생합니까? 부모 엔티티이다 HQL
FROM Parent GROUP BY Parent.id, Parent.name, Parent.column1
에
나는 완전히 잘 모르겠지만, 내가 같이가/명시 적으로 작성해야합니다 수에 가입 생각 : : 왼쪽 가져 가입 "
희망 나는 다음과 같은 것을 시도 할 것이다 – LorenzCK