Может javax.persistence. Query.getResultList () возвращают пустой указатель?

Основной случай - когда кто-то звонит Thread.interrupt () на Вашем потоке.

может быть более безопасно бросить RuntimeException, если это происходит, когда Вы действительно не ожидаете его, но для очень простых случаев можно, вероятно, проигнорировать его.

112
задан rdk 12 July 2009 в 07:23
поделиться

4 ответа

Вы правы. Спецификация JPA ничего об этом не говорит. Но Java Persistence with Hibernate book, 2nd edition , говорит:

Если результат запроса пуст, возвращается ноль

Реализация Hibernate JPA (Entity Manager) возвращает ноль при вызове query.getResultList () без результата.

UPDATE

Как отмечали некоторые пользователи, кажется, что новейшая версия Hibernate вместо этого возвращает пустой список.

Пустой список также возвращается в Eclipselink, когда нет результатов найдено.

67
ответ дан 24 November 2019 в 02:53
поделиться

Если в спецификации сказано этого не может случиться, вы бы поверили им? Учитывая, что ваш код предположительно может работать с различными реализациями JPA, доверяете ли вы каждому разработчику, который сделает это правильно?

Несмотря ни на что, я бы написал защитный код и проверил значение null.

Теперь большой вопрос: должны ли мы рассматривать "null" и пустой список как синонимы? Вот где спецификации должны нам помочь, а не помогают.

Я предполагаю, что возврат null (если это действительно могло произойти) будет эквивалентен «Я не понял запрос», а пустой список - « да, запрос понял, но записей не было ».

22
ответ дан 24 November 2019 в 02:53
поделиться

Contrary to Arthur's post, when I actually ran a query which no entities matched I got an empty list, not null. This is using Hibernate and is what I consider correct behaviour: an empty list is the correct answer when you ask for a collection of entities and there aren't any.

13
ответ дан 24 November 2019 в 02:53
поделиться
[

]Конечно, если вы протестируете набор результатов с помощью Jakarta's CollectionUtils.isNotEmpty, вы будете охвачены в любом случае.[

].
1
ответ дан 24 November 2019 в 02:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: