91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Grails復用查詢條件并分頁的實現方法

發布時間:2021-07-28 22:02:05 來源:億速云 閱讀:219 作者:chen 欄目:云計算

本篇內容介紹了“Grails復用查詢條件并分頁的實現方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

  看過幾篇寫grails分頁的,大都把簡單的東西搞復雜了,而且里面都沒有對查詢條件復用,在分頁時,求count和list的時候where條件是一樣的,好點的程序員都會把where條件復用一下,在grails里面肯定是利用閉包特性重復利用了,看看下面的代碼就懂了~

def serach = {
		if (!params.max) params.max = 10
		if (!params.offset) params.offset = 0
		if (!params.sort) params.sort = "id"
		if (!params.order) params.order = "asc"
		
		def cel = {
			if(params.name){
				like("name", "%${params.name}%")
			}
			if(params.city){
				like("city", "%${params.city}%")
			}
		}
		
		def results = User.createCriteria().list(params,cel)
//		def cut = User.createCriteria().count(cel)  
		[userInstanceList: results, userInstanceTotal: results.totalCount]
	}

 看到沒,del閉包重復利用了~,另外需要說明下:在list的時候,會返回一個PagedResultList類型,里面就有totalCount屬性,所以注釋的那段代碼不用寫,不然會發3條SQL了。 這里主要是利用閉包復用查詢條件演示了。

另外說下hibernate和ibatis里面的做法,hibernate一般這樣干,封裝個方法:

private Criteria getCriteria(Dept dept) {
		Criteria criteria = super.getSession().createCriteria(Dept.class);
		criteria.addOrder(Order.desc("id")); //倒序
		if (dept != null) {
			if (dept.getId() != null && dept.getId() > 0) {
				criteria.add(Restrictions.eq("id", dept.getId()));
			}
			if (StringUtils.isNotBlank(dept.getName())) {
				criteria.add(Restrictions.like("name", setPropertyValue(dept.getName())));
			}
			if(StringUtils.isNotBlank(dept.getDesp())){
				criteria.add(Restrictions.like("desp", setPropertyValue(dept.getDesp())));
			}
		}
		return criteria;
	}

 這樣就可以復用啦。

“Grails復用查詢條件并分頁的實現方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

迭部县| 法库县| 绥中县| 五常市| 宁德市| 滦南县| 哈巴河县| 得荣县| 英山县| 宜章县| 乌拉特后旗| 邹城市| 池州市| 罗平县| 淄博市| 腾冲县| 闵行区| 乐业县| 鹤庆县| 怀柔区| 齐齐哈尔市| 石河子市| 安新县| 漳浦县| 新沂市| 徐汇区| 长治县| 大港区| 萨迦县| 湘潭市| 泰州市| 靖州| 台中县| 紫金县| 三门县| 宽甸| 越西县| 舒兰市| 岑溪市| 霸州市| 普宁市|