【发布时间】:2014-06-13 01:46:54
【问题描述】:
我有这个 Spring Data CrudRepository 处理数据库上的 CRUD 操作。
@Repository
public interface IUserRepository extends CrudRepository<User, String> {
}
User 是我的数据库的用户表的实体。 CrudRepository 将以下操作添加到存储库:
delete(String ID)findOne(String ID)save(User user)
如documentation 中所述,删除和查找操作会抛出IllegalArgumentException,以防给定的 id 为空,而保存操作不会抛出任何异常。
问题在于 CrudRepository 的 javadoc 没有提及这些操作引发的其他异常。例如,如果提供的 ID 在 DB 中不存在,它不会告诉 delete(String ID) 操作会引发 EmptyResultDataAccessException。
在save(User user) 操作的javadoc 中,如果您插入破坏了一个数据完整性约束(在唯一字段和外键上)的新用户,并不清楚会引发哪些异常。此外,它不会警告您是在编写新用户还是现有用户:它只是创建一个新用户或在存在时覆盖(因此它是插入 + 更新操作)。
在企业应用程序中,我应该能够捕获操作可以抛出的每个可抛出异常,我应该在操作的 javadoc 中阅读相关内容。
你知道任何关于CrudRepository异常的明确文档吗?
【问题讨论】:
标签: java spring spring-data