JPA中Specification方法
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方法相关推荐
- Spring Data Jpa中的save和saveAndFlush方法
Spring Data Jpa中save和saveAndFlush的区别,首先直接看图: save是CurdRepository接口下的方法 saveAndFlush是JpaRepository接口下 ...
- jpa中::::_项目学生:JPA标准查询
jpa中:::: 这是Project Student的一部分. 其他职位包括带有Jersey的Webservice Client,带有Jersey的 Webservice Server , 业务层 , ...
- spring data jpa封装specification实现简单风格的动态查询
github:https://github.com/peterowang/spring-data-jpa-demo 单一实体的动态查询: @Servicepublic class AdvancedUs ...
- 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序
显示时,有三个参数,前两个必填,第几页,一页多少个size,第三个参数默认可以不填. 但是发现这个方法已经过时了,通过查看它的源码发现,新方法为静态方法PageRequest of(page,size ...
- 对Spring Data JPA中的page对象下的content属性里的实体类对象转换为dto对象
对Spring Data JPA中的page对象下的content属性里的实体类对象转换为dto对象. 刚开始试遍历content,进行转换,添加到新的list中,再set进去page.后来发现pag ...
- JPA中实现双向多对多的关联关系(附代码下载)
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
- JPA中实现单向一对多的关联关系
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...
- Spring Boot JPA 中transaction的使用
文章目录 @Transactional的实现 @Transactional的使用 Transaction的传播级别 REQUIRED SUPPORTS MANDATORY NEVER NOT_SUPP ...
- Spring Boot JPA中java 8 的应用
文章目录 Optional Stream API CompletableFuture Spring Boot JPA中java 8 的应用 上篇文章中我们讲到了如何在Spring Boot中使用JPA ...
- controller调用另一个controller中的方法 获取返回值_必须掌握!你知道 Spring 中运用的 9 种设计模式吗 ?...
Spring中涉及的设计模式总结,在面试中也会经常问道 Spring 中设计模式的问题.本文以实现方式.实质.实现原理的结构简单介绍 Sping 中应用的 9 种设计模型,具体详细的刨析会在后面的文章 ...
最新文章
- 使用reveal.js制作PPT,并部署至GitHub
- 区块链面试过程中的40个问题
- ubuntu adb
- docsify and awesome
- (转)Javascript面向对象编程(二):构造函数的继承
- Nova 组件详解 - 每天5分钟玩转 OpenStack(26)
- 最简单的的让应用软件不随着系统重装而重装的方法
- 51nod 1489 蜥蜴和地下室
- 权威!盘点 100 个最受欢迎的 Java 库!绝对经典
- 创业篇——小老板的日常管理
- android sdk下载慢的解决方法
- 图片标注工具LabelImg安装与使用
- 百度文库文档下载操作流程
- 常见笔顺错误的字_原来这么多年,我写字的笔顺一直都是错的
- 微信公众号开发之iOS分享失败
- [Nowcoder] 2021年度训练联盟热身训练赛第六场 Mini Battleship | 深搜 回溯 乱搞
- 【程序人生】有个程序员男朋友是什么体验?被公开吐槽
- CodeForces 596B Wilbur and Array
- 全面解析Mybatis中参数处理
- ArcGIS中给地图图片添加经纬度坐标