中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

福鼎市| 曲水县| 九龙城区| 东辽县| 汤原县| 运城市| 麦盖提县| 礼泉县| 扬州市| 安顺市| 库车县| 永吉县| 华安县| 澄江县| 清镇市| 北辰区| 灵寿县| 密山市| 桦南县| 定兴县| 巴林左旗| 肇东市| 榆林市| 囊谦县| 仪陇县| 县级市| 鄂温| 琼结县| 昭觉县| SHOW| 鸡东县| 金湖县| 班玛县| 中牟县| 长春市| 嘉鱼县| 屯门区| 盐城市| 中西区| 望奎县| 山东省|