文档章节

grails的criteria实现复合查询并实现结果分页

andysofan
 andysofan
发布于 2015/01/20 09:59
字数 193
阅读 23
收藏 0

def search = {
        if(!params.max) params.max = 10
        if(!params.offset) params.offset = 0
        def searchClosure =  {
            if(params.categoryName) {
                category{
                    eq('categoryName', params.categoryName);
                }
            }
            if(params.title) {
                like('title',"%${params.title}")
            }
            if(params.priceLow) {
                ge('price', new BigDecimal(params.priceLow))
            }
            if(params.priceHigh) {
                le('price', new BigDecimal(params.priceHigh))
            }
            if(params.description) {
                like('description', "%${params.description}")
            }
        }
        def c = Goods.createCriteria();
        params.sort = "price"
        params.order = "asc"
        def goodList = c.list (params, searchClosure)
        def goodsCount = goodList.totalCount

        render (view: 'list', model: [goodsInstanceList: goodList, goodsInstanceTotal: goodsCount])
    }

使用闭包封装查询条件如上面的searchClosure闭包,这样就可以重复使用查询条件了,
在list的时候会返回一个PagedResultList类型,里面就有totalCount属性,表示符合查询条件的记录数,这样就不用count了。在list的时候可以传入分页参数组成的map如上面的params参数,这样就不用在查询闭包里设置分页参数了

© 著作权归作者所有

共有 人打赏支持
andysofan
粉丝 0
博文 9
码字总数 2855
作品 0
浦东
私信 提问
grails的criteria实现复合查询并实现结果分页

def search = { if(!params.max) params.max = 10 if(!params.offset) params.offset = 0 def searchClosure = { if(params.categoryName) { category{ eq('categoryName', params.categoryN......

KingSirLee
2014/07/14
0
0
grials中List的totalCount属性

今天在对数据进行分页查询的时候,用了List的.count的属性,结果所有数据都被显示出来,限制条件没起作用。 后来查阅后发现,应该使用的是totalCount属性。 《grails技术精解与web开发实践》...

文七辰
2013/11/02
410
0
【Hibernate】 Criteria Queries (条件查询)

Criteria Queries 提供了类别安全的查询,可以替代HQL、JPQL和本地SQL查询。 Criteria queries 是通过如下三个类完成的。 Criteria: 一次查询 Criterion: 一个查询条件 Restrictions:查询条...

666B
2014/07/07
0
0
selfly/dexcoder-assistant

#Dexcoder快速开发辅助工具包 该通用dal是在开发过程中,对于简单封装的通用dao或数据访问层使用深感痛苦与不便,由此进行了整合和改进发展而来。 如果你不喜欢用、这类ORM框架,喜欢或,那么...

selfly
2015/12/24
0
0
Spring Data Jpa(分页、Specification、Criteria)

分页的主要接口与类 PagingAndSortingRepository 继承自 CrudRepository 接口,提供了排序以及分页查询能力,提供了两个方法 虽然 PagingAndSortingRepository 接口中只有 findAll 方法,但是...

林塬
2018/01/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins安装

https://my.oschina.net/u/593517/blog/1797968 jenkins 安装 https://my.oschina.net/u/593517/blog/3028175 GIT 安装 https://my.oschina.net/u/593517/blog/3028179 maven 安装 插件安装 ......

Gm_ning
10分钟前
1
0
小言服务端解决方案-监控

框架保证方向,整体包容细节 为保证服务端运行平稳正常,owner应使得系统应保有相应的监控:系统监控,业务监控。而服务运行的平稳高效是否有保障跟监控粒度又成直接的正比关系。本文仅针对开...

重城重楼
22分钟前
0
0
搜索引擎(Elasticsearch搜索详解)

学完本课题,你应达成如下目标: 掌握ES搜索API的规则、用法。 掌握各种查询用法 搜索API 搜索API 端点地址 GET /twitter/_search?q=user:kimchy GET /twitter/tweet,user/_search?q=user:...

这很耳东先生
46分钟前
6
0
浅谈如何减少GC的次数

GC会stop the world。会暂停程序的执行,带来延迟的代价。所以在开发中,我们不希望GC的次数过多。 本文将讨论如何在开发中改善各种细节,从而减少GC的次数。 (1)对象不用时最好显式置为 Nu...

浮躁的码农
47分钟前
1
0
jpa 自定义返回对象

任何ORM框架都少不了开放自定义sql的问题。jpa自然也不例外,很多场景需要写复杂sql的。 首先定义一个方法签名,然后打上@Query注解。像下面这样,需要注意nativeQuery,这个表示query中的字...

朝如青丝暮成雪
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部