/**
*
* 查看日志列表-按照时间倒序排列
*
* @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. Kaka's Matrix Travels

    http://poj.org/problem?id=3422 #include <stdio.h> #include <algorithm> #include <stri ...

  2. nodejs在windows下的安装

    Windowv 上安装Node.js Windows 安装包(.msi) : 32 位安装包下载地址 : http://nodejs.org/dist/v0.10.26/node-v0.10.26-x ...

  3. Java中JPS命令监控

    很多人在学习java的时候只是对java粗略的学了一遍,很少有人能了解jvm层面的一些东西,比如我们想看目前有多少个java进程,可以在命令行执行jps.下面我们来说说jps的一些详细的用法. jps ...

  4. 关于swoole 和golang 的压力测试结果

    一.环境介绍 linux centos7 php7.1.18 go1.12.1 2核4G内存 二.代码 swoole代码 <?php $http = new swoole_http_server ...

  5. 解决macOS升级之后每次使用ssh都要输入密码的问题

      最近想趁着假期把跟了我2年mac的系统重做下.于是就开始行动了,经过大半天的数据备份.然后进行了全盘格式化,使用了在线更新的方式从新安装升级到了10.12.6.这里提醒下有类似的想法的同学可以采用 ...

  6. mysql视图的操作

    一.创建视图的语法形式 CREATE VIEW view_name AS 查询语句 ; 使用视图 SELECT * FROM view_name ; 二.创建各种视图 1.封装实现查询常量语句的视图, ...

  7. js获取某年某月一共多少天

    const getDaysInMonth = (year, month) => { let date = new Date(year, month, 1); return new Date(da ...

  8. [Windows Server 2003] 还原SQL Server数据库

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:SQL Ser ...

  9. C# 获得Properties下的定义的资源

    var str1 = Properties.Resources.ResourceManager.GetObject("String1", null); string url = S ...

  10. ES6 中set的用法