crit.setProjection(Projection.rowCount()) возвращает пустой список
Я получаю 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 результатов, я говорю о получении пустого списка)
Спасибо!
1 ответ
Решение
В этом случае вы можете просто использовать:
crResult.uniqueResult()
Я не думаю, что вы можете получить нулевой список, но вы можете получить список с 0 элементами в некоторых случаях, в которых нет .get(0)
Индекс и выбрасывая ошибку, которую вы получаете...
Вы также можете сначала проверить длину списка, а затем получить элемент:
List<?> list= crResult.list();
if(list.size>0)
countResults = (Integer)list().get(0);