spring boot 复杂多条件分页排序列表查询
来源:互联网 发布:家装 墙面颜色 知乎 编辑:程序博客网 时间:2024/06/03 17:10
Controller层就不写了,主要贴一下Service代码。
Service
import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.domain.Page;import org.springframework.data.domain.PageRequest;import org.springframework.data.domain.Pageable;import org.springframework.data.domain.Sort;import org.springframework.data.jpa.domain.Specification;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import javax.persistence.criteria.CriteriaBuilder;import javax.persistence.criteria.CriteriaQuery;import javax.persistence.criteria.Predicate;import javax.persistence.criteria.Root;@Service("operatingRecordService")@Transactionalpublic class OperatingRecordService { @Autowired private OperatingRecordRepository operatingRecordRepository;/** * 分页列表模糊 查询 * * @param page * @param rows * @param operatingRecordVO * @return */public Page<OperatingRecordVO> findPageList(Integer page,Integer rows,OperatingRecordVO operatingRecordVO){page = (page == null) ? 1 : page;rows = (rows == null) ? 10 : rows;Pageable pageable = new PageRequest(page - 1, rows, Sort.Direction.DESC,"id");//id倒序排列return (Page<OperatingRecordVO>) operatingRecordRepository.findAll(new Specification() {@Overridepublic Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {//操作对象 模糊查询if (!StringUtil.isBlank(operatingRecordVO.getObjects())) {Predicate objects ;objects = cb.like(root.get("objects"), "%"+operatingRecordVO.getObjects()+"%");query.where(objects);}//操作类型 精确查询if (operatingRecordVO.getType()!= null && !"".equals(operatingRecordVO.getType())) {Predicate type ;type = cb.equal(root.get("type"), operatingRecordVO.getType());query.where(type);}//操作状态if (operatingRecordVO.getStatus()!= null && !"".equals(operatingRecordVO.getStatus())) {Predicate status ;status = cb.equal(root.get("status"), operatingRecordVO.getStatus());query.where(status);}return null;};}, pageable);};}
OperatingRecordRepository
import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.JpaSpecificationExecutor;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;@Repository@Transactional(propagation = Propagation.NESTED)public interface OperatingRecordRepository extends JpaRepository<OperatingRecordVO, Integer> , JpaSpecificationExecutor<OperatingRecordVO> {}
阅读全文
1 0
- spring boot 复杂多条件分页排序列表查询
- struts hibernate spring 实现分页、排序、复杂条件查询②
- MVC 列表多条件动态查询分页
- Spring JPA 复杂条件查询
- 转载 spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
- spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序等
- spring-data-jpa 介绍 复杂查询,包括多表关联,分页,排序
- Spring jpa data多条件分页查询
- Spring+Hibernate 复杂查询分页
- Spring+Hibernate 复杂查询分页
- Spring+Hibernate 复杂查询分页
- Spring+Hibernate 复杂查询分页
- Spring boot mybatis 修改 , 查询涉及到多条件查询
- Spring Data JPA 复杂/多条件组合查询
- Spring Data JPA 复杂/多条件组合查询
- Spring Data JPA 复杂/多条件组合查询
- 多条件查询数据列表并进行分页
- 介绍 复杂查询,包括多表关联,分页,排序等
- maven生成可执行jar文件,排除其他jar中的SF,DSA,RSA等文件
- 洛谷3939 数颜色
- Stacking 在机器学习中的应用,以kaggle titanic为例
- 模板整理: 图论---差分约束
- 视频图像质量的特征参数介绍
- spring boot 复杂多条件分页排序列表查询
- JavaWeb一些简单操作(六) --- JS中声明全局变量
- C++的位运算
- SpringBoot报错(八)返回页面报错
- NMS算法的理解
- 1029. 旧键盘(20)——C语言
- ORA-20000:ORU-10027:buffer overflow,limit of 10000 bytes 解决方法
- 多线程的安全问题。 创建线程的两种方式区别
- Nginx动静分离实现