//获取动态条件的集合List<Long> list = new ArrayList<Long>();Long sysUserId = currentUser.getSysUserId();if (sysUserId != null) {SysUser sysUser = sysUserRepository.findOne(sysUserId);if (sysUser != null) {String groupItemIds = sysUser.groupItemIds();if (groupItemIds != null && !groupItemIds.isEmpty()) {String[] str = StringUtils.split(groupItemIds,",");for (String s : str) {if (s != null && !s.isEmpty() && s != "") {list.add(Long.valueOf(s));}}}}}

//封装Specification查询条件Specification<Goods> spec = (root, query, cb) -> {List<Predicate> predicates = new ArrayList<Predicate>();
List<Predicate> preList = new ArrayList<Predicate>();if (list != null && list.size()>0) {preList.add(root.<Long>get("groupItemId").in(list));}if (sysUserId != null) {Predicate predicate = cb.equal(root.get(Goods_.crtUserId), sysUserId);preList.add(predicate);}Predicate p = cb.or(preList.toArray(new Predicate[preList.size()]));predicates.add(p);            if (!predicates.isEmpty()) {return cb.and(predicates.toArray(new Predicate[0]));} else {return null;}};Page<Goods> pageresult = goodsRepository.findAll(spec, pageable);

转载于:https://www.cnblogs.com/mr-wuxiansheng/p/6863865.html

spring-data-jpa动态条件查询相关推荐

  1. spring data jpa实现分页查询功能

    spring data jpa实现分页查询功能 HTML代码部分: // 收派标准信息表格 $('#grid').datagrid( {iconCls : 'icon-forward',fit : t ...

  2. spring data jpa 多对多查询

    spring data jpa 多对多查询 以用户-角色 多读多为例: User类,用户 @Entity public class User {private String username;priv ...

  3. Spring Data JPA 多条件判空查询

    Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询. 使用@Query注解,这种方式可以直接在Repository里面写sql,但是这种方式的问题 ...

  4. Spring Data JPA多表查询

    多表查询在Spring Data JPA中有两种实现方式 第一种创建一个结果集接口来接收多表连查的结果 第二种利用JPA的关联映射来实现 先来熟悉一下几个注解 注解 意思 属性 @ManyToOne ...

  5. Spring data jpa 动态查询封装

    最近几天学习一下jpa,发现在动态查询方面支持不是很好,一个包含多种动态查询条件的列表需要写大量的代码,而我本身有强迫症,代码有洁癖,大量的重复的代码,自然不爽,于是就.......,废话少说,直接上 ...

  6. Spring Data JPA 动态拼接条件的通用设计模式

    记住官方文档永远是首选 import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import jav ...

  7. spring data jpa 的 in 查询 Specification 实现

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 只是一个简单需求:  查询所有部门id 属于  idList 的数据 Page<WorkWei ...

  8. Spring Data JPA自定义SELECT查询语句,自定义UPDATE修改语句

    查询语句: 1. 在@Query 注解里设置value ,?1.?2 分别代表第一第二个参数, nativeQuery=true  表示是否是原生SQL @Query(value = "se ...

  9. java data jpa_java中Spring data jpa通过Predicate查询时间段

    如下,想搜索time1和time2之间的数据,但是查不到cb是重写了方法中的参数CriteriaBuilder,root是参数Rootpredicates.add(cb.between(root.ge ...

  10. Spring Data JPA

    1.    概述 Spring JPA通过为用户统一创建和销毁EntityManager,进行事务管理,简化JPA的配置等使用户的开发更加简便. Spring Data JPA是在Spring JPA ...

最新文章

  1. 里程碑!SpaceX 载人首飞发射成功,马斯克填补美国载人飞行近十年空白
  2. socket read阻塞_go tcp中的ioutil.ReadAll阻塞的问题
  3. 用setsockopt()来控制recv()与send()的超时
  4. 【Python】Pandas中的宝藏函数-transform()
  5. oracle 查询每组条数,Oracle SQL查询:根据时间检索每组的最新值
  6. 面向对象之: 类空间问题及类之间的关系
  7. 利用PCA降维的手工计算实例
  8. Fiddler 4 模拟 服务端返回 json
  9. ubuntu 18.04 安装网易云音乐
  10. 【Elasticsearch源码】 更新性能分析
  11. seaborn颜色报错 ValueError: Invalid RGBA argument: [‘#f9802d‘, ‘#f26b15‘, ‘#fdc48f‘]
  12. 强烈推荐 :最用心的运营数据指标解读
  13. 解决Solaris应用程序开发内存泄漏问题 (1)
  14. 8.深入浅出:集成运放的电流源——参考《模拟电子技术基础》清华大学华成英主讲
  15. 海南三亚旅游吃住行攻略
  16. Hystrix流程分析及断路器工作原理
  17. 竖排显示变横排显示的方法
  18. 阿里产品苏杰访谈:关于失败
  19. 计算机网络——知识点超详细总结
  20. Win10 + VS2017 + CPU + opencv3.2 + Darknet 配置

热门文章

  1. lenovo电脑_办公笔记本电脑有哪些值得推荐?
  2. MarkDown(七)——LaTeX数学公式符号标记
  3. clickhouse kafka引擎入门
  4. Linux终端下输出二维码
  5. 数据库树形结构、多级联动的表设计
  6. Neo4j_02了解图数据库
  7. linux下面修改默认的shell
  8. 用互联网模式打造智慧城市的“城市云”
  9. oracle spool
  10. 证书格式简介及不同格式之间的转换方式