当前位置: 首页 > 知识库问答 >
问题:

具有Spring分页功能的JPAQuery

法烨烨
2023-03-14

我想使用org.springframework.data.domain.Pageablecom.querydsl.jpa.impl.jpaquery,有什么方法或可靠的解决办法可以使Pageable与jpaQuery一起工作吗?

共有1个答案

雍宇定
2023-03-14

所以我发现为什么让他们一起工作很好,贴出了完整的例子:

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();
    }
}
 类似资料:
  • 问题内容: 我们的REST API在Pages中返回结果。这是一个控制器的示例 有没有一种简单的方法可以通过RestTemplate使用该API? 如果我们这样做 引发异常 先感谢 问题答案: 将读取Rest API响应的代码更改为; 这是我为RestResponsePage创建的类

  • 对于大多数网站(尤其是博客),当文章越来越多的时候,就会有分页显示文章列表的需求。Jekyll 已经自建分页功能,你只需要根据约定放置文件即可。 在 Jekyll 3 中,需要在 gems 中安装 jekyll-paginate 插件,并添加到你的 Gemfile 和 _config.yml 中。在 Jekyll 2 中,分页是标准功能。 分页功能只支持 HTML 文件 Jekyll 的分页功能不

  • 简介 在大多数的框架中,分页无不令人十分头疼。 Laravel 的分页器与查询构造器、Eloquent ORM 集成在一起,并提供方便易用的数据结果集分页。分页器生成的 HTML 与 Bootstrap CSS 框架 兼容。 基本用法 查询构造器分页 对数据进行分页有几种方式。 最简单的是在 查询语句构造器 或者 Eloquent 语句 使用 paginate 方法。 paginate 会根据用户

  • 在Jpa QueryDsl中,我似乎可以使用如下分页: 问题是: null

  • 最后,在使用Spring Data REST和QueryDSL时,是否可以显示正确的分页链接?如果是,怎么做?

  • 用例。我需要一个单页应用程序(SPA),但希望保持“伪”页面功能。注意:通过Ajax调用登录后推送到应用程序的内容为不同业务用户的角色定制... 我有菜单: 我有html div内容... 显然,这些巨型div中的每一个都代表一个用于显示的“页面”。我想根据用户的菜单选择一次显示这些。 不幸的是,引导折叠功能是一个简单的切换。引导折叠向元素添加或删除类标记。单击菜单项以显示链接的内容,单击同一菜单