0

我在表中有 3 条记录。我想要不同组的结果。所以我做了范围查询,

Query q=session.createQuery("select a.firstName,a.lastname from Emp);
q.setFirstResult(startVal);
q.setMaxResults(endVal);
myList = q.list();
System.out.println(myList.size());

我创建了如下组。这些组是动态生成的。

startVal    endval
0           1
2           2
3           3

对于 startVal= 0 , endVal = 1 它的工作(返回 myList.size() 值 1)
对于 startVal= 2 , endVal = 2 它的工作(返回 myList.size() 值 1)

但是对于 startVal= 3 , endVal = 3 它不工作返回 myList.size() 值 0。

有人可以帮我吗?

4

1 回答 1

0

这不是起始值和结束值 - 它是起始值和最大结果。

所以你的第一个范围是从 0 开始,返回我 1 个结果最大值(因此你的单个结果)。

您的第二个范围从 2 开始,最多给我 2 个结果 - 在这种情况下,只有 3 个结果(0、1 和 2),因为您从 2 开始,所以只有一个结果。

这些范围都没有捕获中间行。

于 2012-07-11T13:18:23.860 回答