我有這個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