Я новичок в разбиении на страницы, я хочу разбить на страницы свой JPQL-запрос, но я не могу этого сделать, найдите следующие классы:
Служба:
public List<Company> getCompanies(BooleanExpression predicate, Pageable pageRequest){
return companyRepositoryImpl.getCompany(predicate, pageRequest);
}
Репозиторий: @Repository publi c class CompanyRepositoryImpl {
@PersistenceContext
private EntityManager entityManager;
public <T> List<T> getCompany(BooleanExpression finalExpression, Pageable pageRequest) {
int pageNumber = pageRequest.getPageNumber();
int pageSize = pageRequest.getPageSize();
long pageOffset = pageRequest.getOffset();
Sort sortValue = pageRequest.getSort();
// String str = sortValue.toString();
QCompany comp = QCompany.company;
QCompanyAddress qCompanyAddress = QCompanyAddress.companyAddress;
final JPQLQuery<QCompany> jpqlQuery = new JPAQuery(entityManager);
OrderSpecifier<?> o = qCompanyAddress.addressLine1.desc();
JPQLQuery<QCompany> query = jpqlQuery.from(comp).leftJoin(qCompanyAddress)
.on(comp.id.eq(qCompanyAddress.company.id)
.and(qCompanyAddress.statusActiveSwitch.eq(SwitchEnum.Y))
.and(qCompanyAddress.addressType.addressTypeCode.eq("1")))
.where(finalExpression).orderBy(o).limit(20);
QueryResults<QCompany> fetchResults = query.fetchResults();
List<QCompany> results = fetchResults.getResults();
fetchResults.getTotal();
return (List<T>) results;
}
В репозитории у меня есть страничный объект, но я не знаю, как использовать его с JPQL. любая помощь ценится.