Если строк нет, то как query.list() и criteria.list() возвращают пустой список вместо нулевого значения. В чем причина этого?
Метод hibernate query.list() возвращает пустой список вместо нулевого значения
Ответ 1
Причина заключается не в том, чтобы принудительно вводить нулевые проверки в код клиента, в соответствии с Эффективное Java 2nd Edition, Пункт 43: Возвращение пустым массивы или коллекции, а не нули.
Это делает код клиента более простым и менее подверженным ошибкам (и, скорее всего, также и реализацию метода).
Идиома с нулевым возвратом, вероятно, является задержкой с языка программирования C, в длина массивов возвращается отдельно от реальных массивов. В C нет преимущество в распределении массива, если нуль возвращается как длина.
Ответ 2
Он является последовательным: список возвращается со всеми результатами, есть ли они или нет.