spring JPA分页排序条件查询
@RequestMapping("/listByPage")
    public Page<Production> listByPage(int page, int size, String sortStr, boolean sortAscOrDesc, String searchObj)
    {
        Specification<Production> specification = getSpecification(searchObj);
        if (StringUtils.isEmpty(sortStr))
        {
            return productionRepository.findAll(specification, new PageRequest(page, size));
        }
        else
        {
            return productionRepository.findAll(specification, new PageRequest(page, size, new Sort((sortAscOrDesc ? Sort.Direction.ASC : Sort.Direction.DESC), sortStr)));
        }
    }
    private Specification getSpecification(String searchObj)
    {
        JSONObject search = (JSONObject) JSONValue.parse(searchObj);
        Specification<Production> specification = new Specification<Production>()
        {
            @Override
            public Predicate toPredicate(Root<Production> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder)
            {
                List<Predicate> queryList = new ArrayList<Predicate>();
                if (search.get("name") != null && !StringUtils.isEmpty(search.get("name") + ""))
                {
                    queryList.add(criteriaBuilder.equal(root.get("name"), search.get("name") + ""));
                }
                if (search.get("name1") != null && !StringUtils.isEmpty(search.get("name1") + ""))
                {
                    queryList.add(criteriaBuilder.equal(root.get("name1"), search.get("name1") + ""));
                }
                if (queryList.size() > 0)
                {
                    criteriaQuery.where(queryList.toArray(new Predicate[queryList.size()]));
                }
                return criteriaQuery.getRestriction();
            }
        };
        return specification;
    }												
											spring JPA分页排序条件查询的更多相关文章
- JPA之排序条件查询
		List<Monitoring> monitoringList = repository.findAll((root, query, cb) -> { List<Predica ... 
- ormlite 在android中 排序 条件查询
		ormlite 在android中 排序 条件查询 all = dao.queryBuilder().orderBy("Id", true).where().eq("Ty ... 
- Spring MVC和Spring Data JPA之按条件查询和分页(kkpaper分页组件)
		推荐视频:尚硅谷Spring Data JPA视频教程,一学就会,百度一下就有, 后台代码:在DAO层继承Spring Data JPA的PagingAndSortingRepository接口实现的 ... 
- spring data jpa实现多条件查询(分页和不分页)
		目前的spring data jpa已经帮我们干了CRUD的大部分活了,但如果有些活它干不了(CrudRepository接口中没定义),那么只能由我们自己干了.这里要说的就是在它的框架里,如何实现自 ... 
- 【JPA】表达条件查询的关键字
		1.通过解析方法名创建查询 框架在进行方法名解析时,会先把方法名多余的前缀截取掉,比如 find.findBy.read.readBy.get.getBy,然后对剩下部分进行解析.并且如果方法的最后一 ... 
- jqGrid jqGrid分页参数+条件查询
		HTML <div class="row"> <div class="col-sm-20"> <form id="for ... 
- 分页离线条件查询 页面响应500  后端未报异常 list集合有数据
		如果 使用同一个Hibernate的DetachedCriteria离线条件查询对象同时查询“过滤后条数” 和 “过滤后的数据集合”,那么查询记录数时需要设置聚合函数条件并且 使用聚合函数 代码要在 ... 
- 【JPA】Spring Data JPA 实现分页和条件查询
		文章目录 1.在`Repository`层继承两个接口 2.在Service层进行查询操作 3.Page的方法 1.在Repository层继承两个接口 JpaRepository<Admin, ... 
- springboot带分页的条件查询
		QueryDSL简介 QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询. Querydsl可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者 ... 
随机推荐
- Robot常用Library安装
			Python-Library: yum install -y mysql-devel python-devel python-setuptools pip install MySQL-python p ... 
- ESXI5.5设置主机的时间自动同步服务 NTP
			背景:现在公司的很多线上服务也都通过虚拟化来实现,最近遇到一个小问题,虚拟机上的时间不准确.原来是虚拟机会主动同步宿主机时间,一般虚拟机中都安装vmware tool工具,这个工具会自动和宿主机进行时 ... 
- 关于cookie的一些事
			关于cookie的一些事转自:http://blog.csdn.net/yunnysunny/article/details/7748106 cookie是实现web中用户状态维护的基础.我们常见的s ... 
- 给iOS开发新手送点福利,简述UIScrollView的属性和用法
			UIScrollView 1. contentOffset 默认CGPointZero,用来设置scrollView的滚动偏移量. // 设置scrollView的滚动偏移量 scrollView ... 
- CSS3 圆角属性 border-radius和-webkit-border-radius使用
			CSS3 圆角属性 border-radius 在 CSS3 中新增了一个 border-radius 边框半径属性,即大家常用的圆角效果.这使得制作圆角将不再麻烦,只需对所用对象加一个 border ... 
- ERROR 1045 (28000): Access denied for user 'hive'@'localhost' (using password: YES)
			[root@master native]# mysql -uhive -pEnter password: ERROR 1045 (28000): Access denied for user 'hiv ... 
- String.Join() 方法 的用法
			连接指定数组的元素或集合的成员,在每个元素或成员之间使用指定的分隔符.重载此成员.有关此成员的完整信息(包括语法.用法和示例),请单击重载列表中的相应名称 Join(String, IEnumerab ... 
- 管道| , <<<重定向
			https://blog.csdn.net/stormbjm/article/details/19173011 
- centos6.5 64练手安装memcached,PHP调试
			思路 先安装 memcached 然后安装php的基于扩展libmemcache ,然后安装php memcache扩展包,然后把扩展添加到php.ini 1 yum安装 简单方便 yum ins ... 
- 3.circle (圆)
			1.HTML代码: <div class="circleOne"></div> <br/> <div class="circle ... 
