Tôi có Dữ liệu mùa xuân CrudRepository
này xử lý các hoạt động CRUD trên một DB.Trường hợp ngoại lệ Spring CrudRepository
@Repository
public interface IUserRepository extends CrudRepository<User, String> {
}
User
là thực thể của bảng người dùng của DB của tôi. CrudRepository
thêm cụ thể là các hoạt động sau đây để kho:
delete(String ID)
findOne(String ID)
save(User user)
Như đã nêu trong documentation thì xóa và tìm các hoạt động ném IllegalArgumentException
trong trường hợp id cho là null trong khi hoạt động lưu không ném bất kỳ ngoại lệ nào.
Vấn đề là javadoc của CrudRepository không đề cập đến các trường hợp ngoại lệ khác được ném bởi các hoạt động này. Ví dụ, nó không nói rằng hoạt động delete(String ID)
ném một số EmptyResultDataAccessException
trong trường hợp ID được cung cấp không tồn tại trong DB.
Trong javadoc của hoạt động save(User user)
, không rõ trường hợp ngoại lệ nào được ném trong trường hợp bạn chèn Người dùng mới phá vỡ một ràng buộc toàn vẹn dữ liệu (trên các trường duy nhất và khóa ngoài). Hơn nữa nó không cảnh báo bạn cho dù bạn đang viết một người dùng mới hay tồn tại: nó chỉ tạo ra một người dùng mới hoặc ghi đè nếu tồn tại (vì vậy nó là một hoạt động chèn + cập nhật).
Trong ứng dụng doanh nghiệp, tôi có thể nắm bắt mọi ngoại lệ có thể ném mà một hoạt động có thể ném và tôi nên đọc về điều đó trong javadoc của hoạt động.
Bạn có biết bất kỳ tài liệu rõ ràng nào về ngoại lệ CrudRepository không?
Cảm ơn bạn
Đánh giá cao việc bạn cung cấp liên kết tới tất cả các ngoại lệ và giải thích chi tiết ý nghĩa của các ngoại lệ đó. –
@vtor ý của bạn là "cơ chế dịch ngoại lệ tích hợp". Tôi tò mò tại sao tài liệu hướng dẫn mùa xuân không nói rõ ràng rằng một số phương thức ném DataAccessException này, ví dụ như lưu phương thức của lớp CrudRepository. – fabrik