0

执行此代码时,我java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 有时会遇到:

Criteria crResult = getSession().createCriteria(XXX.class);
[...]
crResult.setProjection(Projections.rowCount());
Integer countResults = ((Integer)crResult.list().get(0)); // <---This gives the error

是否有任何情况crResult.list()可以返回一个空列表?

(只是澄清一下,我不是在谈论接收一个出现 0 个结果的列表,我是在谈论接收一个空列表

谢谢!

4

1 回答 1

0

在这种情况下,您可以使用:

crResult.uniqueResult()

我不认为你可以得到一个空列表,但在某些情况下你可以得到一个包含 0 个项目的列表,其中没有.get(0)索引并抛出你得到的错误......

您也可以先检查列表长度然后获取项目:

List<?> list= crResult.list();
if(list.size>0)
    countResults = (Integer)list().get(0);
于 2013-05-30T17:56:33.330 回答