我在执行此代码时获得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结果的列表,我正在谈论收到一个空列表)
谢谢!
答案 0 :(得分:0)
在这种情况下,你可以使用:
crResult.uniqueResult()
我不认为你可以获得一个空列表,但在某些情况下你可以得到一个包含0项的列表,其中没有.get(0)
索引并抛出你得到的错误......
您也可以先检查列表长度,然后获取项目:
List<?> list= crResult.list();
if(list.size>0)
countResults = (Integer)list().get(0);