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) { + + } } }