From c0d337d715961c5a754d23a54860a244ceb5fe62 Mon Sep 17 00:00:00 2001 From: Jens Schauder Date: Tue, 3 Nov 2020 16:30:55 +0100 Subject: [PATCH] DATAJDBC-629 - Implements CrudRepository.deleteAllById(Iterable). Original pull request: #252. --- .../repository/support/SimpleJdbcRepository.java | 6 ++++++ .../repository/JdbcRepositoryIntegrationTests.java | 14 ++++++++++++++ .../EnableJdbcRepositoriesIntegrationTests.java | 5 +++++ 3 files changed, 25 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 6b25fb12..be22e92a 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 @@ -155,6 +155,11 @@ public class SimpleJdbcRepository implements PagingAndSortingRepository ids) { + ids.forEach(it -> entityOperations.deleteById(it, entity.getType())); + } + /* * (non-Javadoc) * @see org.springframework.data.repository.PagingAndSortingRepository#findAll(org.springframework.data.domain.Sort sort) @@ -172,4 +177,5 @@ public class SimpleJdbcRepository implements PagingAndSortingRepository findAll(Pageable pageable) { return entityOperations.findAll(entity.getType(), pageable); } + } diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java index 665554ae..a9752033 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java @@ -204,6 +204,20 @@ public class JdbcRepositoryIntegrationTests { .containsExactlyInAnyOrder(two.getIdProp()); } + @Test // DATAJDBC-629 + public void deleteByIdList() { + + DummyEntity one = repository.save(createDummyEntity()); + DummyEntity two = repository.save(createDummyEntity()); + DummyEntity three = repository.save(createDummyEntity()); + + repository.deleteAllById(asList(one.idProp, three.idProp)); + + assertThat(repository.findAll()) // + .extracting(DummyEntity::getIdProp) // + .containsExactlyInAnyOrder(two.getIdProp()); + } + @Test // DATAJDBC-97 public void deleteAll() { diff --git a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcRepositoriesIntegrationTests.java b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcRepositoriesIntegrationTests.java index f8c3ea2a..b6c8bcc2 100644 --- a/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcRepositoriesIntegrationTests.java +++ b/spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/config/EnableJdbcRepositoriesIntegrationTests.java @@ -228,5 +228,10 @@ public class EnableJdbcRepositoriesIntegrationTests { public void deleteAll() { } + + @Override + public void deleteAllById(Iterable ids) { + + } } }