From 5e8161dbf3bfea1a7546166aafa97a140ab3edb9 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Fri, 19 Jul 2019 13:40:12 +0200 Subject: [PATCH] DATAJDBC-398 - SimpleJdbcRepository methods are now transactional. Original pull request: #163. --- .../jdbc/repository/support/SimpleJdbcRepository.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/SimpleJdbcRepository.java b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/SimpleJdbcRepository.java index 78b6ed24c..55da6a68b 100644 --- a/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/SimpleJdbcRepository.java +++ b/spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/SimpleJdbcRepository.java @@ -25,12 +25,14 @@ import org.springframework.data.jdbc.core.JdbcAggregateOperations; import org.springframework.data.mapping.PersistentEntity; import org.springframework.data.repository.CrudRepository; import org.springframework.data.util.Streamable; +import org.springframework.transaction.annotation.Transactional; /** * @author Jens Schauder * @author Oliver Gierke */ @RequiredArgsConstructor +@Transactional(readOnly = true) public class SimpleJdbcRepository implements CrudRepository { private final @NonNull @@ -43,6 +45,7 @@ public class SimpleJdbcRepository implements CrudRepository { * @see org.springframework.data.repository.CrudRepository#save(S) */ @Override + @Transactional public S save(S instance) { return entityOperations.save(instance); } @@ -52,6 +55,7 @@ public class SimpleJdbcRepository implements CrudRepository { * @see org.springframework.data.repository.CrudRepository#save(java.lang.Iterable) */ @Override + @Transactional public Iterable saveAll(Iterable entities) { return Streamable.of(entities).stream() // @@ -109,6 +113,7 @@ public class SimpleJdbcRepository implements CrudRepository { * @see org.springframework.data.repository.CrudRepository#delete(java.io.Serializable) */ @Override + @Transactional public void deleteById(ID id) { entityOperations.deleteById(id, entity.getType()); } @@ -118,6 +123,7 @@ public class SimpleJdbcRepository implements CrudRepository { * @see org.springframework.data.repository.CrudRepository#delete(java.lang.Object) */ @Override + @Transactional public void delete(T instance) { entityOperations.delete(instance, entity.getType()); } @@ -127,12 +133,14 @@ public class SimpleJdbcRepository implements CrudRepository { * @see org.springframework.data.repository.CrudRepository#delete(java.lang.Iterable) */ @Override + @Transactional @SuppressWarnings("unchecked") public void deleteAll(Iterable entities) { entities.forEach(it -> entityOperations.delete(it, (Class) it.getClass())); } @Override + @Transactional public void deleteAll() { entityOperations.deleteAll(entity.getType()); }