When I fetch all results without pagination result is OK but when use pagination appear problem in pagination metadata
Page p=PageImpl(result.getResults(), PageRequest.of(pageNo, pageSize), result.getTotal())
p.getTotalElements() // wrong result
p.result.getTotalPages() // also is wrong
code snippet:-
QOrderAppliedTax qTax = QOrderAppliedTax.orderAppliedTax;
QOrderDetails qOrderDetails = QOrderDetails.orderDetails;
NumberExpression<Integer> groupBy = qOrderDetails.createdDate.yearWeek();
StringPath name = qTax.name;
NumberExpression<Double> totalTaxValue = qTax.value.sum();
NumberExpression<Long> ordersCount = qOrderDetails.order.countDistinct();
DateTimeExpression<Date> fromDate = qOrderDetails.createdDate.min();
DateTimeExpression<Date> toDate = qOrderDetails.createdDate.max();
CriteriaBuilderFactory cbf = Criteria.getDefault().createCriteriaBuilderFactory(entityManagerFactory);
QueryResults<TaxDto> result= new BlazeJPAQuery<>(em, cbf)
.select(Projections.constructor(TaxDto.class, fromDate, toDate, groupBy, name, totalTaxValue,
ordersCount))
.from(qTax).innerJoin(qOrderDetails).on(qTax.orderDetails.eq(qOrderDetails))
.groupBy(taxName, groupBy).offset(pageNo * pageSize).limit(pageSize).fetchResults();
the wrong result appears even I used
orderBy(groupBy.asc(), taxName.asc())
exactly the two fields in order by is unique together.