У меня есть этот Spring Data CrudRepository, который обрабатывает операции CRUD в БД.
@Repository
public interface IUserRepository extends CrudRepository<User, String> {
}
User - это таблица сущностей пользователя моей БД. CrudRepository добавляет следующие операции в репозиторий:
-
delete(String ID) -
findOne(String ID) -
save(User user)
Как указано в документации , операции удаления и поиска throw IllegalArgumentException в случае, если данный идентификатор равен null, в то время как операция сохранения не вызывает никаких исключений.
Проблема в том, что javadoc CrudRepository не упоминает о других исключениях, вызванных этими операциями. Например, он не говорит о том, что операция delete(String ID) вызывает EmptyResultDataAccessException, если предоставленный идентификатор не существует в БД.
В javadoc операции save(User user) не выясняется, какие исключения выдаются, если вы вставляете нового пользователя, который нарушает одно ограничение целостности данных (по уникальным полям и внешним ключам). Кроме того, он не предупреждает вас, пишете ли вы нового или существующего пользователя: он просто создает нового пользователя или перезаписывает, если он существует (так что это операция "Вставка + обновление" ).
В корпоративном приложении я должен уловить каждое бросающееся исключение, которое может выполнить операция, и я должен прочитать об этом в операции javadoc.
Знаете ли вы какую-либо четкую документацию об исключениях CrudRepository?
Спасибо