From 96b5b72013a0846d8346c98700afcf908016a5a1 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Tue, 29 Apr 2025 10:13:48 +0200 Subject: [PATCH] Improve documentation for `CrudRepository.deleteById`. The documentation now clarifies that entity might get loaded and therefore possibly OptimisticLockingFailureException might get thrown. Closes #3280 Original pull request: #3281 --- .../data/repository/CrudRepository.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/CrudRepository.java b/src/main/java/org/springframework/data/repository/CrudRepository.java index 86c8b0e68..de56bcf11 100644 --- a/src/main/java/org/springframework/data/repository/CrudRepository.java +++ b/src/main/java/org/springframework/data/repository/CrudRepository.java @@ -20,8 +20,11 @@ import java.util.Optional; import org.springframework.dao.OptimisticLockingFailureException; /** - * Interface for generic CRUD operations on a repository for a specific type. - * + * Interface for generic CRUD operations on a repository for a specific type. In general operations offered via this + * interface participate in life cycle events, and optimistic locking. Therefore, modules may choose to load an entity + * before deleting or updating it in order to facilitate this, and any modifying method call may trigger an exception + * due to failure of optimistic locking. + * * @author Oliver Gierke * @author Eberhard Wolff * @author Jens Schauder @@ -106,7 +109,11 @@ public interface CrudRepository extends Repository { * Deletes the entity with the given id. *

* If the entity is not found in the persistence store it is silently ignored. - * + *

+ * Note that, since this method triggers life cycle events, it might need to load an entity before deleting it. This + * also might trigger {@link OptimisticLockingFailureException} if between loading and actually deleting the entity, + * the entity was changed by some other process. + * * @param id must not be {@literal null}. * @throws IllegalArgumentException in case the given {@literal id} is {@literal null} */