2012-07-11 146 views
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.

有人可以帮我吗?

回答

0

这不是起始值和最终值 - 它是起始值和最大值。

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

你的第二个范围是从2开始,给我2个最大结果 - 在这种情况下只有3个结果(0,1和2),并且由于你从2开始,所以只有一个结果。

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

+0

谢谢杰夫。那么什么是替代。或者为了获得中间值,我需要从获得的开始值和结束值中进行一些替代,并为中间值创建范围? – user1517605 2012-07-11 14:44:09

+0

谢谢jeff它的工作。 – user1517605 2012-07-11 19:06:46