그룹화 하여 부모 객체에 자식 객체를 List로 넣어서 반환하려고 QueryDSL을 통해 transform을 사용하였다.
@Override
public List<AnalyticSimpleResDto> findByCollectedAtAndChannel() {
QAnalytic analytic = QAnalytic.analytic;
return jpaQueryFactory
.selectFrom(analytic)
.orderBy(...)
.transform(
GroupBy.groupBy(...)
.list(Projections.constructor(
...
GroupBy.list(Projections.constructor(
...
))
))
);
}
}
java.lang.Object org.hibernate.ScrollableResults.get(int)
JPQLTemplates.DEFAULT를 추가해 해결하였다.
SpringBoot 3.x Version에서는 기존과 다르게 설정을 해야 사용이 가능하다.
@Configuration
public class QueryDslConfig {
@PersistenceContext
private EntityManager entityManager;
@Bean
public JPAQueryFactory jpaQueryFactory() {
return new JPAQueryFactory(JPQLTemplates.DEFAULT, entityManager);
}
}