zoukankan      html  css  js  c++  java
  • JPA 实现分页查询的两种方式

    1.使用ExampleMatcher

    ExampleMatcher matcher = ExampleMatcher.matching()
                    .withMatcher("userId", match -> match.exact()) //精确匹配userId
                    .withIgnorePaths("id");//忽略属性:是否关注。因为是基本类型,需要忽略掉
    ShareRecord shareRecord = new ShareRecord();
    shareRecord.setUserId(userId);
    Example<ShareRecord> of = Example.of(shareRecord, matcher);
    pageable  = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), pageable.getSort());
    Page<ShareRecord> page = shareRecordRepository.findAll(of,pageable);
    

    2.使用Specification

    Page<ShareRecord> page = shareRecordRepository.findAll(new Specification<ShareRecord>(){
       @Override
       public Predicate toPredicate(Root<ShareRecord> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
           List<Predicate> list = new ArrayList<>();
              if (StringUtils.isNotEmpty(userId))
                  list.add(cb.equal(root.<String>get("userId"), userId));
              if (list.size() != 0) {
                  Predicate[] p = new Predicate[list.size()];
                  return cb.and(list.toArray(p));
              } else {
                  return null;
              }
           }
    }, new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), pageable.getSort()));
    
  • 相关阅读:
    ubuntu下手动安装autoconf
    解决VMware下的ubuntu桌面鼠标键盘失效的问题
    DP搬运工1
    把数字转换成货币格式
    指定字符隐藏
    JS 时间获取 (常用)
    electron 安装
    el-form表单校验包含循环
    算法-07| 动态规划
    纯手撸——归并排序
  • 原文地址:https://www.cnblogs.com/snail-gao/p/12054749.html
Copyright © 2011-2022 走看看