Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带Spring分页的JPAQuery_Java_Spring_Spring Boot_Spring Data Jpa_Querydsl - Fatal编程技术网

Java 带Spring分页的JPAQuery

Java 带Spring分页的JPAQuery,java,spring,spring-boot,spring-data-jpa,querydsl,Java,Spring,Spring Boot,Spring Data Jpa,Querydsl,我想使用org.springframework.data.domain.Pageable和com.querydsl.jpa.impl.JPAQuery有没有一种方法或者有一个可靠的解决方法如何使Pageable与JPAQuery一起工作?所以我很好地解释了为什么要让它们一起工作发布完整的示例: import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.Order; import com.querydsl.cor

我想使用
org.springframework.data.domain.Pageable
com.querydsl.jpa.impl.JPAQuery
有没有一种方法或者有一个可靠的解决方法如何使Pageable与JPAQuery一起工作?

所以我很好地解释了为什么要让它们一起工作发布完整的示例:

import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.types.Order;
import com.querydsl.core.types.OrderSpecifier;
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.core.types.dsl.PathBuilder;
import com.querydsl.jpa.impl.JPAQuery;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import javax.persistence.EntityManager;

public class Example {
    public void example(Pageable pageable, EntityManager em){
        QCustomer qCustomer = QCustomer.customer;

        JPAQuery<?> query = new JPAQuery<>(em);
        query.from(qCustomer);

        BooleanBuilder builder = new BooleanBuilder();
        builder.and(qCustomer.email.likeIgnoreCase("c@m.c"));

        JPAQuery<?> where = query.where(builder);
        // This for loop is making it work with Pagable
        query.offset(pageable.getOffset());
        query.limit(pageable.getPageSize());
        PathBuilder<Customer> entityPath = new PathBuilder<>(Customer.class, "customer");
        for (Sort.Order order : pageable.getSort()) {
            PathBuilder<Object> path = entityPath.get(order.getProperty());
            query.orderBy(new OrderSpecifier(Order.valueOf(order.getDirection().name()), path));
        }

        List<Customer> resultList = query.createQuery().getResultList();
    }
}
import com.querydsl.core.BooleanBuilder;
导入com.querydsl.core.types.Order;
导入com.querydsl.core.types.OrderSpecifier;
导入com.querydsl.core.types.dsl.booleanpression;
导入com.querydsl.core.types.dsl.PathBuilder;
导入com.querydsl.jpa.impl.JPAQuery;
导入org.springframework.data.domain.Pageable;
导入org.springframework.data.domain.Sort;
导入javax.persistence.EntityManager;
公开课范例{
公共无效示例(可分页、可分页、EntityManager em){
QCustomer QCustomer=QCustomer.customer;
JPAQuery query=新的JPAQuery(em);
查询来源(QCCustomer);
BooleanBuilder=新的BooleanBuilder();
和(qCustomer.email.likeIgnoreCase)(“c@m.c"));
JPAQuery-where=query.where(生成器);
//这个for循环使它能够与pagatable一起工作
query.offset(pageable.getOffset());
query.limit(pageable.getPageSize());
PathBuilder entityPath=新的PathBuilder(Customer.class,“Customer”);
for(Sort.Order:pageable.getSort()){
PathBuilder path=entityPath.get(order.getProperty());
query.orderBy(新的OrderSpecifier(Order.valueOf(Order.getDirection().name()),path));
}
List resultList=query.createQuery().getResultList();
}
}

从何处获取可分页对象?来自RestController