/**
*
* 查看日志列表-按照时间倒序排列
*
* @author: wyc
* @createTime: 2017年4月20日 下午4:24:43
* @history:
* @return List<SecurityAuditLog>
*/
public Page<SecurityAuditLog> pageLogList(final SecurityAuditLog log,int page,int size){
Sort s=new Sort(Sort.Direction.DESC, "operateTime");
PageRequest p=new PageRequest(page-1, size, s); Specification querySpecifi = new Specification<SecurityAuditLog>() {
@Override
public Predicate toPredicate(Root<SecurityAuditLog> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) { List<Predicate> predicates = new ArrayList<>();
if(null != log.getLoginAccount()&&!"".equals(log.getLoginAccount())){
predicates.add(criteriaBuilder.like(root.<String>get("loginAccount"), "%"+log.getLoginAccount()+"%"));
} if(null != log.getQuerySign()&&!"".equals(log.getQuerySign())){
predicates.add(criteriaBuilder.like(root.<String>get("querySign"), "%"+log.getQuerySign()+"%"));
} if(null != log.getQueryType()&&!"".equals(log.getQueryType())){
predicates.add(criteriaBuilder.equal(root.<String>get("queryType"), log.getQueryType()));
} if(null != log.getOperatePlatform()&&!"".equals(log.getOperatePlatform())){
predicates.add(criteriaBuilder.equal(root.<String>get("operatePlatform"), log.getOperatePlatform()));
} if(null != log.getOperateModule()&&!"".equals(log.getOperateModule())){
predicates.add(criteriaBuilder.equal(root.<String>get("operateModule"), log.getOperateModule()));
} return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
}
};
Page<SecurityAuditLog> list= securityAuditLogDao.findAll(querySpecifi,p);
return list;
}
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;public interface ISecurityAuditLogDao extends PagingAndSortingRepository<SecurityAuditLog, String>,JpaSpecificationExecutor<SecurityAuditLog>{ }

Spring Data Jpa-动态查询条件的更多相关文章

  1. springboot整合spring data jpa 动态查询

    Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询,在实现动态查询时我们需要用到Criteria API,主要是以下三个: 1.Criteria ...

  2. spring data jpa 动态查询(工具类封装)

    利用JPA的Specification<T>接口和元模型就实现动态查询了.但是这样每一个需要动态查询的地方都需要写一个这样类似的findByConditions方法,小型项目还好,大型项目 ...

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

    import java.sql.Timestamp;import java.util.ArrayList;import java.util.List;import javax.persistence. ...

  4. Spring Data JPA动态查询(多条件and)

    entity: @Entity @Table(name = "data_illustration") public class Test { @Id @GenericGenerat ...

  5. spring data jpa 分页查询

    https://www.cnblogs.com/hdwang/p/7843405.html spring data jpa 分页查询   法一(本地sql查询,注意表名啥的都用数据库中的名称,适用于特 ...

  6. Spring Boot 入门系列(二十七)使用Spring Data JPA 自定义查询如此简单,完全不需要写SQL!

    前面讲了Spring Boot 整合Spring Boot JPA,实现JPA 的增.删.改.查的功能.JPA使用非常简单,只需继承JpaRepository ,无需任何数据访问层和sql语句即可实现 ...

  7. spring data JPA entityManager查询 并将查询到的值转为实体对象

    spring data JPA entityManager查询 并将查询到的值转为实体对象 . https://blog.csdn.net/qq_34791233/article/details/81 ...

  8. 【Spring Data 系列学习】Spring Data JPA 基础查询

    [Spring Data 系列学习]Spring Data JPA 基础查询 前面的章节简单讲解了 了解 Spring Data JPA . Jpa 和 Hibernate,本章节开始通过案例上手 S ...

  9. 【Spring Data 系列学习】Spring Data JPA 自定义查询,分页,排序,条件查询

    Spring Boot Jpa 默认提供 CURD 的方法等方法,在日常中往往时无法满足我们业务的要求,本章节通过自定义简单查询案例进行讲解. 快速上手 项目中的pom.xml.application ...

  10. Spring Data JPA 复杂/多条件组合查询

    1: 编写DAO类或接口  dao类/接口 需继承 public interface JpaSpecificationExecutor<T> 接口: 如果需要分页,还可继承 public ...

随机推荐

  1. js获取后台数据

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  2. js mvc框架

    介绍 使用过 JavaScript框架(如 AngularJS, Backbone 或者Ember)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理.这些框架实现了MVC,使得在一个单页面中实现 ...

  3. [Swift通天遁地]六、智能布局-(8)布局框架的使用:多分辨率适配和横竖屏布局

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. 判断IOS静态库(.a文件)是否支持模拟器和真机运行

    判断IOS静态库(.a文件)是否支持模拟器和真机运行 在mac终端下,进入到.a文件目录下,然后输入: lipo -info libMyAlertView.a Architectures in the ...

  5. 【NOIP练习赛】学习

    [NOIP练习赛]T3.学习 Description 巨弱小 D 准备学习,有 n 份学习资料给他看,每份学习资料的 内容可以用一个正整数 ai 表示.小 D 如果在一天内学习了多份资料, 他只能记住 ...

  6. 检查阿里云ssl证书到期情况

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-06-10 16:00 # @Author : Anthony.long # ...

  7. overflow:解决 div的高度塌陷问题

    高度塌陷是如何引起的? 解析: 当一个 div中所有的子  div都进行了浮动后,那么会出现该问题,那么解决方就是在父 div中 设置其  overflow:hidden;即可解决高度塌陷问题. 方式 ...

  8. C#语言最基础的数组和集合

    数组的书写格式:数据类型[]变量名=new 数据类型[长度]: 集合的书写格式:List<变量类型>变量名=new List<变量类型>(): 集合添加元素:变量名.Add(数 ...

  9. 在已有spring的基础上集成hibernate

    1.导入hibernate的包和spring的包    hibernate3.hibernate-jpa-2.0-api-.必须的包,log4j,log4j配置文件  1.1 导入Spring的依赖包 ...

  10. 电源管理POWER_SUPPLY_PROP_CAPACITY_LEVEL

    电量计节点中有capacity_level 节点,这个是反应当前电池电流高低水平的参数. 分为critical low full normal 一般是由fg的芯片来判断,通过IIC读取,具体判断可参考 ...