JPA中Specification方法

  • 步骤一:继承JpaRepository
@Repository
public interface ProjectDao extends JpaRepository<Project, String> {Page<Project> findAll(Specification<Project> specification,Pageable pageable);
}
  • 步骤二:复写Specification方法,将查询条件条件到 criteriaBuilder中。
public class ProjectDaoSpec {public static Specification<Project> getVariableSpec(       String projectName,                                                               String leaderId){return (entity, query, criteriaBuilder) -> {Predicate predicate = criteriaBuilder.isFalse(entity.get("isDeleted"));List<Predicate> additionList = new ArrayList<>();if (!StringUtil.isNullOrEmpty(projectName)){additionList.add(criteriaBuilder.like(entity.get("projectName"), "%" + projectName + "%"));}if (!StringUtil.isNullOrEmpty(leaderId)){additionList.add(criteriaBuilder.equal(entity.get("leaderId"), leaderId));}for (Predicate addition : additionList) {predicate = criteriaBuilder.and(predicate, addition);}return predicate;};}
}
  • 步骤三:在service中,调用分页查询,并转换为Dto。
public PageData<ProjectDto> getPage(String projectName,String leaderIdPageable pageRequest) {Specification<Project> specification = ProjectDaoSpec.getVariableSpec(projectName,leaderId);return getProject(projectDao.findAll(specification, pageRequest));}

JPA中Specification方法相关推荐

  1. Spring Data Jpa中的save和saveAndFlush方法

    Spring Data Jpa中save和saveAndFlush的区别,首先直接看图: save是CurdRepository接口下的方法 saveAndFlush是JpaRepository接口下 ...

  2. jpa中::::_项目学生:JPA标准查询

    jpa中:::: 这是Project Student的一部分. 其他职位包括带有Jersey的Webservice Client,带有Jersey的 Webservice Server , 业务层 , ...

  3. spring data jpa封装specification实现简单风格的动态查询

    github:https://github.com/peterowang/spring-data-jpa-demo 单一实体的动态查询: @Servicepublic class AdvancedUs ...

  4. 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序

    显示时,有三个参数,前两个必填,第几页,一页多少个size,第三个参数默认可以不填. 但是发现这个方法已经过时了,通过查看它的源码发现,新方法为静态方法PageRequest of(page,size ...

  5. 对Spring Data JPA中的page对象下的content属性里的实体类对象转换为dto对象

    对Spring Data JPA中的page对象下的content属性里的实体类对象转换为dto对象. 刚开始试遍历content,进行转换,添加到新的list中,再set进去page.后来发现pag ...

  6. JPA中实现双向多对多的关联关系(附代码下载)

    场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...

  7. JPA中实现单向一对多的关联关系

    场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...

  8. Spring Boot JPA 中transaction的使用

    文章目录 @Transactional的实现 @Transactional的使用 Transaction的传播级别 REQUIRED SUPPORTS MANDATORY NEVER NOT_SUPP ...

  9. Spring Boot JPA中java 8 的应用

    文章目录 Optional Stream API CompletableFuture Spring Boot JPA中java 8 的应用 上篇文章中我们讲到了如何在Spring Boot中使用JPA ...

  10. controller调用另一个controller中的方法 获取返回值_必须掌握!你知道 Spring 中运用的 9 种设计模式吗 ?...

    Spring中涉及的设计模式总结,在面试中也会经常问道 Spring 中设计模式的问题.本文以实现方式.实质.实现原理的结构简单介绍 Sping 中应用的 9 种设计模型,具体详细的刨析会在后面的文章 ...

最新文章

  1. 使用reveal.js制作PPT,并部署至GitHub
  2. 区块链面试过程中的40个问题
  3. ubuntu adb
  4. docsify and awesome
  5. (转)Javascript面向对象编程(二):构造函数的继承
  6. Nova 组件详解 - 每天5分钟玩转 OpenStack(26)
  7. 最简单的的让应用软件不随着系统重装而重装的方法
  8. 51nod 1489 蜥蜴和地下室
  9. 权威!盘点 100 个最受欢迎的 Java 库!绝对经典
  10. 创业篇——小老板的日常管理
  11. android sdk下载慢的解决方法
  12. 图片标注工具LabelImg安装与使用
  13. 百度文库文档下载操作流程
  14. 常见笔顺错误的字_原来这么多年,我写字的笔顺一直都是错的
  15. 微信公众号开发之iOS分享失败
  16. [Nowcoder] 2021年度训练联盟热身训练赛第六场 Mini Battleship | 深搜 回溯 乱搞
  17. 【程序人生】有个程序员男朋友是什么体验?被公开吐槽
  18. CodeForces 596B Wilbur and Array
  19. 全面解析Mybatis中参数处理
  20. ArcGIS中给地图图片添加经纬度坐标

热门文章

  1. 【车间调度】基于遗传算法求解车间调度matlab源码
  2. python-三天打渔、两天晒网 - 实验7 简单的循环程序
  3. 360+城市空气质量指数-日度数据、良好天数统计(2001-2022年)
  4. 红外线测温仪方案技术参数
  5. html中设置首字母大写,css如何设置英文首字母大写
  6. PHP 开源 ERP 系统 Discover
  7. 浅析ERP系统—供应链
  8. 【Jquery练习】tab栏切换
  9. 单片机实例11—— 00-59秒计时器(利用软件延时)(硬件电路图+汇编程序+C语言程序)
  10. 【知识图谱】阿里巴巴电商知识图谱