Hibernate分頁查詢

Hibernate分頁查詢代碼:

Query query = getSession().createSQLQuery(sql).addEntity("app", Application.class)
				.addEntity("g", Gameversion.class);

		query.setParameter(0, id);
		query.setParameter(1, ua);
		query.setParameter(2, platform);

		PageControl pc = PageThreadLocal.getPagination();

		query.setMaxResults(pc.getPagesize());
		query.setFirstResult((pc.getPageno() - 1) * pc.getPagesize());

		List<Object[]> resultlist = query.list();

 代碼基於sql查詢,

createSQLQuery(sql)

返回一個SQLQuery。

.addEntity("app", Application.class)
				.addEntity("g", Gameversion.class);

表示查詢返回的結果是Application和Gameversion兩個對象組成的數組,"app"和"g"表示sql語句中對應表的別名。

PageControl pc = PageThreadLocal.getPagination();

這端代碼從ThreadLocal中獲取當前線程的PageControl對象。

最後通過調用:

query.setMaxResults(pc.getPagesize());
		query.setFirstResult((pc.getPageno() - 1) * pc.getPagesize());

設置本次查詢的記錄範圍

發佈了39 篇原創文章 · 獲贊 0 · 訪問量 3736
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章