Bir Spring'teki CRUD işlemlerini gerçekleştiren bu CrudRepository
Spring Verisine sahibim.Spring CrudRepository istisnaları
@Repository
public interface IUserRepository extends CrudRepository<User, String> {
}
User
benim DB'nin bir kullanıcı tablosunun Varlık olduğunu.
delete(String ID)
findOne(String ID)
save(User user)
documentation belirtildiği üzere
, silme ve bulmak operasyon durumunda IllegalArgumentException
atmak verilen id: CrudRepository
deposuna yani aşağıdaki işlemleri ekler null kaydetme işlemi herhangi bir istisna atmaz. Sorun, CrudRepository'in javadoc'unun bu operasyonlar tarafından atılan diğer istisnalardan bahsetmemesidir. Örneğin, delete(String ID)
işleminin sağlanan ID'nin DB'de olmaması durumunda EmptyResultDataAccessException
attığını söylemez.
save(User user)
işleminin javadoc'unda, bir veri bütünlüğü kısıtlaması (benzersiz alanlar ve yabancı anahtarlarda) kesen yeni bir Kullanıcı eklediğinizde hangi istisnaların atıldığı açık değildir. Ayrıca, yeni veya mevcut bir Kullanıcı yazıp yazmadığınızı da size uyarmaz: Yeni bir Kullanıcı yaratır veya mevcutsa üzerine yazar (bu bir Ekleme + Güncelleme işlemi).
Bir kuruluş uygulamasında, bir işlemin fırlayabildiği her atılabilir özel durumu yakalayabilmem gerekir ve bunu işlemin javadoc'unda okumalıyım.
CrudRepository istisnaları hakkında net bir belge biliyor musunuz? @Repository (veya yapılandırılmış) ile açıklamalı bütün fasulye - JPA kalıcılık sağlayıcıları tarafından atılan tüm istisnalar Bahar en DataAccessException dönüştürülür, böylece
, yerleşik istisna çeviri mekanizmasının
Tüm istisnalara bağlantılar sağladığınızı ve ne anlama geldiklerini ayrıntılı olarak açıkladığınız için teşekkür ederiz. –
@vtor "yerleşik istisna çeviri mekanizması" ile ne demek istiyorsun? Bahar belgelemesinin neden bazı yöntemlerin bu DataAccessException'ı, örneğin CrudRepository sınıfının kaydetme yöntemini attığını açıkça söylemediğini merak ediyorum. – fabrik