Код: Выделить всё
protected Long getIdList(
@NonNull final CriteriaBuilder rootBuilder,
@NonNull final CriteriaQuery rootQuery,
@NonNull final Pageable pageable) {
final HibernateCriteriaBuilder listBuilder = (HibernateCriteriaBuilder) rootBuilder;
final JpaCriteriaQuery listQuery = listBuilder.createQuery(Long.class);
final SqmSubQuery subQuery = (SqmSubQuery) listQuery.subquery(Tuple.class);
final SqmQuerySpec rootQuerySpec = ((SqmSelectStatement) rootQuery).getQuerySpec();
final SqmQuerySpec subQuerySpec = rootQuerySpec.copy(SqmCopyContext.simpleContext());
subQuery.setQueryPart(subQuerySpec);
final Root subRoot = subQuery.getRoots().iterator().next();
subQuery.multiselect(subRoot.get("id").alias("id"));
// listQuery.multiselect(listBuilder.count(listBuilder.literal(1))).from(subQuery);
// instead of counting the ids, I want to get them...
listQuery.multiselect(subRoot.get("id")).from(subQuery);
return entityManager
.createQuery(listQuery)
.setFirstResult(PageableUtils.getOffsetAsInteger(pageable))
.setMaxResults(pageable.getPageSize())
.getResultList();
}
Код: Выделить всё
org.springframework.orm.jpa.JpaSystemException: Could not locate TableGroup
Подробнее здесь: https://stackoverflow.com/questions/790 ... iteria-api