2014-12-03 47 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