【发布时间】:2014-12-03 07:47:18
【问题描述】:
我正在尝试从表中一次获取 n 行,但我不知道如何继续。我查看了 Criteria api 和 Restrictions api,但没有找到类似的东西。那么,在 Hibernate 中有可能吗?在 MySQL 中是否有可能?
该表有一个 ID,但它是从数据库中自动生成的,它不是那么可靠(我的意思是,两个连续的 ID 中可能有很多缺失的数字)。此外,还有一个数据列,所以我肯定可以按此列按升序/降序对结果进行排序。
【问题讨论】:
我正在尝试从表中一次获取 n 行,但我不知道如何继续。我查看了 Criteria api 和 Restrictions api,但没有找到类似的东西。那么,在 Hibernate 中有可能吗?在 MySQL 中是否有可能?
该表有一个 ID,但它是从数据库中自动生成的,它不是那么可靠(我的意思是,两个连续的 ID 中可能有很多缺失的数字)。此外,还有一个数据列,所以我肯定可以按此列按升序/降序对结果进行排序。
【问题讨论】:
您可以在 Hibernate Criteria 中使用 setFirstResult(setFirstRow) 和 setMaxResults(setNumberOfRecordsTofetchAtaTime) 方法。
示例
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Example.class);
criteria.setFirstResult(setFirstRow);
criteria.setMaxResults(setNumberOfRecordsTofetchAtaTime);
List<Example> list=criteria.list();
【讨论】:
setFirstRow 是什么意思?例如,假设setFirstRow = 200和setMaxResult = 100,查询返回200到300行?
setFirstRow <= 0、setMaxResult <= 0)应该是什么结果?