SpringData JPA 实现动态条件查询
2017-08-25 15:26
886 查看
SpringData JPA 实现动态条件查询(包含分页、排序)
1、repository层接口 继承JpaSpecificationExecutorpublic interface UserRepository extends JpaRepository<User, Integer>,JpaSpecificationExecutor<User>{ }
注意:
Page<T> findAll(Specification<T> spec, Pageable pageable); //分页按条件查询List<T> findAll(Specification<T> spec); //不分页按条件查询2、service层重写toPredicate方法
public Page<User> getUserByIf(User user,Integer page,Integer size){return userRepository.findAll(new Specification<User>() {@Overridepublic Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {List<Predicate> predicates = new ArrayList<>();if(StringUtils.isNotBlank(user.getName())){predicates.add(builder.like(root.get("name"), "%"+user.getName()+"%")); like}if(user.getAge()!=null){predicates.add(builder.greaterThanOrEqualTo(root.get("age"), user.getAge()));// >=}if(user.getId()!=null){predicates.add(builder.lessThanOrEqualTo(root.get("id"), user.getId()));// <=}return builder.and(predicates.toArray(new Predicate[predicates.size()]));}}, new PageRequest(page, size, Direction.ASC, "id"));}
相关文章推荐
- Spring Data JPA实现动态条件与范围查询实例代码
- Spring data jpa 实现简单动态查询的通用Specification方法
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- springdata jpa使用Example快速实现动态查询
- Spring data jpa 多表查询(三:多对多关系动态条件查询)
- spring-data-jpa动态条件查询
- Spring data JPA使用Specification实现动态查询例子
- Spring data jpa 多表查询(一:单表动态条件查询)
- 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现
- 【java】spring-data-jpa 集成hibernate实现多条件分页查询
- Spring Data Jpa-动态查询条件
- 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现
- spring data jpa动态条件查询
- 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现
- SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
- 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现
- Spring MVC结合Spring Data JPA实现按条件查询和分页
- Spring data jpa 多表查询(二:多表动态条件查询)
- Springboot整合JPA以及动态条件查询的实现
- Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)