2014-12-03 50 views
1

我試圖從表格中一次獲取n行,但我不知道如何繼續。我查看了Criteria API和Restrictions API,但我還沒有發現任何類似的東西。那麼,在Hibernate中可能嗎?是否可以在MySQL中使用?使用休眠條件從表中選擇特定範圍

該表有一個ID,但是從數據庫自動生成,它不是很可靠(我的意思是,可能會有很多來自兩個連續ID的缺失數字)。此外,還有一個數據列,所以我可以按升序/降序排列該列的結果。

回答

3

您可以使用Hibernate Criteria中的setFirstResult(setFirstRow)和setMaxResults(setNumberOfRecordsTofetchAtaTime)方法。

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Example.class); 
criteria.setFirstResult(setFirstRow); 
criteria.setMaxResults(setNumberOfRecordsTofetchAtaTime); 
List<Example> list=criteria.list(); 
+0

感謝您的回覆。 'setFirstRow'是什麼意思?例如,假設'setFirstRow = 200'和'setMaxResult = 100',查詢返回的行數從200到300? – tigerjack89 2014-12-03 10:08:50

+0

是的,你是對的。 – 2014-12-03 10:16:31

+0

謝謝,我試了一下,然後接受你的答案。我以前見過這種方法,但官方文件很糟糕。例如,在各種情況下應該是什麼結果('setFirstRow <= 0','setMaxResult <= 0')? – tigerjack89 2014-12-03 10:45:31