我有这个Spring Data CrudRepository
,它处理DB上的CRUD操作。Spring CrudRepository异常
@Repository
public interface IUserRepository extends CrudRepository<User, String> {
}
User
是我的数据库的用户表的实体。 CrudRepository
增加即下面的操作到仓库:
delete(String ID)
findOne(String ID)
save(User user)
正如documentation所述,删除和查找操作的情况下抛出IllegalArgumentException
给定的ID是null,而保存操作不会抛出任何异常。
问题是CrudRepository的javadoc没有提及这些操作抛出的其他异常。例如,它并不告诉delete(String ID)
操作会在数据库中不存在所提供的ID的情况下抛出EmptyResultDataAccessException
。
在save(User user)
操作的javadoc中,如果插入一个破坏一个数据完整性约束(在唯一字段和外键上)的新用户,则不清楚抛出了哪些异常。此外,它不会警告您是否正在编写新的或存在的用户:它只是创建一个新用户或覆盖如果存在(因此它是一个Insert + Update操作)。
在企业应用程序中,我应该能够捕获每个可引发的异常,一个操作可以抛出,我应该在操作的javadoc中阅读。
你知道任何关于CrudRepository异常的明确文档吗?
谢谢
感谢您提供所有例外的链接,并详细解释它们的含义。 –
@vtor你是什么意思的“内置的异常翻译机制”。我很好奇为什么春季文档没有明确说明某些方法抛出这个DataAccessException,例如保存CrudRepository类的方法。 – fabrik