调用jpa提供的方法,筛选字段不生效

在这里插入图片描述
在这里插入图片描述
参数正常传入,但是筛选不生效,需要在实体类里面添加这样的代码

    @JsonIgnore
    @Transient
    @JSONField(serialize = false)
    public HashMap<String, Integer> getIntegerEqualMap() {
        HashMap<String, Integer> integerEqualMap = new HashMap<>(5);
        integerEqualMap.put("id", id);
        integerEqualMap.put("principalId", principalId);
        integerEqualMap.put("empId",empId);
        return integerEqualMap;
    }

**对于时间筛选,**需要添加如下代码
在这里插入图片描述
在这里插入图片描述

  public Page<LngFreightConfigEntity> findAllFreightConfig(LngFreightConfigEntity lngFreightConfigEntity) {
        LoggerUtil.infoData("/findAllFreightConfig", lngFreightConfigEntity);
        lngFreightConfigEntity.setPages(Pages.getPages(lngFreightConfigEntity.getPages()));
        var env = lngDataBaseService.lngFreightConfigDao.findAll((Specification<LngFreightConfigEntity>) (root, query, cb) -> {
            // TODO Auto-generated method stub
            var predicates = new ArrayList<Predicate>();
            predicates.addAll(Result.gitPredicate(root, cb, lngFreightConfigEntity.getStringLikeMap(), lngFreightConfigEntity.getStringEqualMap(), lngFreightConfigEntity.getIntegerEqualMap()));

            var createTime = Pages.getCreateTime(root, cb, lngFreightConfigEntity.getPages().getDateName(),
                    lngFreightConfigEntity.getPages().getStartDate(), lngFreightConfigEntity.getPages().getEndDate());
            if (createTime.size() > 0) {
                predicates.addAll(createTime);
            }

            return cb.and(predicates.toArray(new Predicate[predicates.size()]));
        }, lngFreightConfigEntity.getPages().getPageable(lngFreightConfigEntity.getPages().getSortDateName()));
        env.filter(Objects::nonNull).forEach(e -> {
            e.setTrafficName(getTrafficUnitName(lngDataBaseService, e.getTrafficId()));
            e.setEmpName(getEmpName(lngDataBaseService, e.getEmpId()));
        });
        for (var a : env) {
            if (a.getEmpId() != null) {
                a.setEmpName(lngDataBaseService.employeesDao.findById(a.getEmpId()).get().getName());
            }
        }


        return env;
    }

pages代码

package com.entity.util;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;

import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class Pages implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer currentpage = 1;//页数
    private Integer pagesize = 25;//每页多少条
    private Integer totalpage;//总页数
    private Integer introwcount = 1;//总条数
    private Integer pageindex;//从多少条开始查
    private String startDate;
    private String endDate;
    private String historyStartDate;
    private String historyEndDate;
    private String dateName ="createDate";
    private String data = "0";//hour
    private String orderBy = "id";
    private String sortDateName = "createDate";
    private Integer sort = 0;
    private String today;
    private Integer ids;


    public Integer getIds() {
        return ids;
    }

    public void setIds(Integer ids) {
        this.ids = ids;
    }

    public String getHistoryStartDate() {
        return historyStartDate;
    }

    public void setHistoryStartDate(String historyStartDate) {
        this.historyStartDate = historyStartDate;
    }

    public String getHistoryEndDate() {
        return historyEndDate;
    }

    public void setHistoryEndDate(String historyEndDate) {
        this.historyEndDate = historyEndDate;
    }

    public String getToday() {
        return today;
    }

    public void setToday(String today) {
        this.today = today;
    }

    public String getSortDateName() {
        return sortDateName;
    }

    public void setSortDateName(String sortDateName) {
        this.sortDateName = sortDateName;
    }

    public Integer getSort() {
        return sort;
    }

    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public String getOrderBy() {
        return orderBy;
    }

    public void setOrderBy(String orderBy) {
        this.orderBy = orderBy;
    }

    public String getDateName() {
        return dateName;
    }

    public void setDateName(String dateName) {
        this.dateName = dateName;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public Integer getCurrentpage() {
        return currentpage;
    }

    public void setCurrentpage(Integer currentpage) {
        this.currentpage = currentpage;
    }

    public Integer getPagesize() {
        return pagesize;
    }

    public void setPagesize(Integer pagesize) {
        this.pagesize = pagesize;
    }

    public Integer getTotalpage() {
        totalpage = introwcount / pagesize;
        if (totalpage == 0) {
            totalpage = totalpage + 1;
        }
        if (introwcount % pagesize > 0 && introwcount > pagesize) {
            totalpage = totalpage + 1;
        }
        return totalpage;
    }

    public void setTotalpage(Integer totalpage) {
        this.totalpage = totalpage;
    }

    public Integer getIntrowcount() {
        return introwcount;
    }

    public void setIntrowcount(Integer introwcount) {
        this.introwcount = introwcount;
    }

    public Integer getPageindex() {
        if (currentpage == 1) {
            return 0;
        }
        return (pagesize * (currentpage - 1));
    }

    public void setPageindex(Integer pageindex) {
        this.pageindex = pageindex;
    }

    public Pageable getPageable(String id) {
        Sort sort = Sort.by(Sort.Direction.DESC, id);
        Pageable pageable = PageRequest.of(currentpage - 1, pagesize, sort);
        return pageable;
    }
    public Pageable getPageable(String id,Integer sort) {
        Sort sorts = null;
        if(sort == 0){
            sorts = Sort.by(Sort.Direction.DESC, id);
        }else {
            sorts = Sort.by(Sort.Direction.ASC, id);
        }
        Pageable pageable = PageRequest.of(currentpage - 1, pagesize, sorts);
        return pageable;
    }
    public Pageable getPageable(String[] id) {
        Sort sort = Sort.by(Sort.Direction.DESC, id);
        Pageable pageable = PageRequest.of(currentpage - 1, pagesize, sort);
        return pageable;
    }

    public static List<Predicate> getCreateTime(Root<?> root, CriteriaBuilder cb, String Name, String Start_date, String End_date) {
        List<Predicate> predicates = new ArrayList<>();
        if (null != Start_date) {
            Predicate predicate = cb.greaterThanOrEqualTo(root.get(Name).as(String.class), Start_date);
            predicates.add(predicate);
        }
        if (null != End_date) {
            Predicate predicate = cb.lessThanOrEqualTo(root.get(Name).as(String.class), End_date);
            predicates.add(predicate);
        }
        return predicates;
    }
    public static Pages getPages(Pages pages){
        if(pages == null) {
            return new Pages();
        }
        return pages;
    }

    public static void startPage(Pages pages) {
        PageHelper.startPage(pages.getCurrentpage(), pages. getPagesize());
    }

    public static PageInfo<?> pageInfo(ArrayList<?> list, Pages pages) {
        return new PageInfo<>(list, pages.getPagesize());
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值