gpt4 book ai didi

java - JPAQuery 与 Spring Pageable

转载 作者:太空宇宙 更新时间:2023-11-04 10:19:18 27 4
gpt4 key购买 nike

我想将org.springframework.data.domain.Pageablecom.querydsl.jpa.impl.JPAQuery一起使用有没有办法或有可靠的解决方法如何使Pageable与JPAQuery一起使用?

最佳答案

所以我found很好,为什么要让他们一起工作,发布完整的示例:

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();
}
}

关于java - JPAQuery 与 Spring Pageable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51338517/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com