В чем причина создания исключения в JPA, когда что-то не может быть найдено?
Добавлено:
Такое поведение было замечено в EJB2 и до сих пор было удалено из EJB3 - но ... Оно сохраняется при вызове Query # getSingleResult () , который вызывает исключение NoResultException.
Обычно я не ожидал бы, что это будет исключением, что что-то не может быть найдено. На самом деле, в некоторых случаях это может быть ситуация по умолчанию, а в большинстве других случаев - ожидаемые. Это заставляет меня вспомнить старую поговорку о том, что вы не должны использовать исключения как часть вашей бизнес-логики, а только как то, что это такое, особые случаи, о которых вы не знаете или не хотите иметь дело.
У кого-нибудь есть идея, почему он реализован таким образом в JPA? Что является недостатком при возврате нулевого значения, когда что-то не может быть найдено?