У меня есть этот 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?
Спасибо