diff --git a/pom.xml b/pom.xml
index cb4e66d37e..a494ea4a18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.0.0.BUILD-SNAPSHOT
+ 2.0.0.DATAMONGO-1712-SNAPSHOT
pom
Spring Data MongoDB
@@ -28,7 +28,7 @@
multi
spring-data-mongodb
- 2.0.0.BUILD-SNAPSHOT
+ 2.0.0.DATACMNS-1063-SNAPSHOT
3.4.2
1.4.0
diff --git a/spring-data-mongodb-cross-store/pom.xml b/spring-data-mongodb-cross-store/pom.xml
index 4a49168713..0718404807 100644
--- a/spring-data-mongodb-cross-store/pom.xml
+++ b/spring-data-mongodb-cross-store/pom.xml
@@ -6,7 +6,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.0.0.BUILD-SNAPSHOT
+ 2.0.0.DATAMONGO-1712-SNAPSHOT
../pom.xml
@@ -48,7 +48,7 @@
org.springframework.data
spring-data-mongodb
- 2.0.0.BUILD-SNAPSHOT
+ 2.0.0.DATAMONGO-1712-SNAPSHOT
diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml
index 750ed23aa8..1525c1a460 100644
--- a/spring-data-mongodb-distribution/pom.xml
+++ b/spring-data-mongodb-distribution/pom.xml
@@ -13,7 +13,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.0.0.BUILD-SNAPSHOT
+ 2.0.0.DATAMONGO-1712-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb-log4j/pom.xml b/spring-data-mongodb-log4j/pom.xml
index 50d0a6454a..81a3536c69 100644
--- a/spring-data-mongodb-log4j/pom.xml
+++ b/spring-data-mongodb-log4j/pom.xml
@@ -5,7 +5,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.0.0.BUILD-SNAPSHOT
+ 2.0.0.DATAMONGO-1712-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml
index 99ef83a54b..478f9b9a1f 100644
--- a/spring-data-mongodb/pom.xml
+++ b/spring-data-mongodb/pom.xml
@@ -11,7 +11,7 @@
org.springframework.data
spring-data-mongodb-parent
- 2.0.0.BUILD-SNAPSHOT
+ 2.0.0.DATAMONGO-1712-SNAPSHOT
../pom.xml
diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java
index 9560f9e6ab..fb0330d5ae 100644
--- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java
+++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepository.java
@@ -67,14 +67,14 @@ public Mono findById(ID id) {
/*
* (non-Javadoc)
- * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findById(reactor.core.publisher.Mono)
+ * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#findById(org.reactivestreams.Publisher)
*/
@Override
- public Mono findById(Mono mono) {
+ public Mono findById(Publisher publisher) {
- Assert.notNull(mono, "The given id must not be null!");
+ Assert.notNull(publisher, "The given id must not be null!");
- return mono.flatMap(
+ return Mono.from(publisher).flatMap(
id -> mongoOperations.findById(id, entityInformation.getJavaType(), entityInformation.getCollectionName()));
}
@@ -115,14 +115,14 @@ public Mono existsById(ID id) {
/*
* (non-Javadoc)
- * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#existsById(reactor.core.publisher.Mono)
+ * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#existsById(org.reactivestreams.Publisher)
*/
@Override
- public Mono existsById(Mono mono) {
+ public Mono existsById(Publisher publisher) {
- Assert.notNull(mono, "The given id must not be null!");
+ Assert.notNull(publisher, "The given id must not be null!");
- return mono.flatMap(id -> mongoOperations.exists(getIdQuery(id), entityInformation.getJavaType(),
+ return Mono.from(publisher).flatMap(id -> mongoOperations.exists(getIdQuery(id), entityInformation.getJavaType(),
entityInformation.getCollectionName()));
}
@@ -180,6 +180,9 @@ public Flux findAllById(Publisher ids) {
*/
@Override
public Flux findAll(Sort sort) {
+
+ Assert.notNull(sort, "Sort must not be null!");
+
return findAll(new Query().with(sort));
}
@@ -204,6 +207,9 @@ public Flux findAll(Example example, Sort sort) {
*/
@Override
public Flux findAll(Example example) {
+
+ Assert.notNull(example, "Example must not be null!");
+
return findAll(example, Sort.unsorted());
}
@@ -327,6 +333,19 @@ public Mono deleteById(ID id) {
.remove(getIdQuery(id), entityInformation.getJavaType(), entityInformation.getCollectionName()).then();
}
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.data.repository.reactive.ReactiveCrudRepository#deleteById(org.reactivestreams.Publisher)
+ */
+ @Override
+ public Mono deleteById(Publisher publisher) {
+
+ Assert.notNull(publisher, "Id must not be null!");
+
+ return Mono.from(publisher).flatMap(id -> mongoOperations.remove(getIdQuery(id), entityInformation.getJavaType(),
+ entityInformation.getCollectionName())).then();
+ }
+
/*
* (non-Javadoc)
* @see org.springframework.data.repository.reactive.ReactiveCrudRepository#delete(java.lang.Object)
diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java
index 660548a03e..d4d6c5aa19 100644
--- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java
+++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/SimpleReactiveMongoRepositoryTests.java
@@ -119,28 +119,38 @@ public void existsByMonoOfIdShouldReturnTrueForExistingObject() {
StepVerifier.create(repository.existsById(Mono.just(dave.id))).expectNext(true).verifyComplete();
}
+ @Test // DATAMONGO-1712
+ public void existsByFluxOfIdShouldReturnTrueForExistingObject() {
+ StepVerifier.create(repository.existsById(Flux.just(dave.id, oliver.id))).expectNext(true).verifyComplete();
+ }
+
@Test // DATAMONGO-1444
public void existsByEmptyMonoOfIdShouldReturnEmptyMono() {
StepVerifier.create(repository.existsById(Mono.empty())).verifyComplete();
}
@Test // DATAMONGO-1444
- public void findOneShouldReturnObject() {
+ public void findByIdShouldReturnObject() {
StepVerifier.create(repository.findById(dave.id)).expectNext(dave).verifyComplete();
}
@Test // DATAMONGO-1444
- public void findOneShouldCompleteWithoutValueForAbsentObject() {
+ public void findByIdShouldCompleteWithoutValueForAbsentObject() {
StepVerifier.create(repository.findById("unknown")).verifyComplete();
}
@Test // DATAMONGO-1444
- public void findOneByMonoOfIdShouldReturnTrueForExistingObject() {
+ public void findByIdByMonoOfIdShouldReturnTrueForExistingObject() {
StepVerifier.create(repository.findById(Mono.just(dave.id))).expectNext(dave).verifyComplete();
}
+ @Test // DATAMONGO-1712
+ public void findByIdByFluxOfIdShouldReturnTrueForExistingObject() {
+ StepVerifier.create(repository.findById(Flux.just(dave.id, oliver.id))).expectNext(dave).verifyComplete();
+ }
+
@Test // DATAMONGO-1444
- public void findOneByEmptyMonoOfIdShouldReturnEmptyMono() {
+ public void findByIdByEmptyMonoOfIdShouldReturnEmptyMono() {
StepVerifier.create(repository.findById(Mono.empty())).verifyComplete();
}
@@ -328,6 +338,23 @@ public void deleteByIdShouldRemoveEntity() {
StepVerifier.create(repository.findById(dave.id)).verifyComplete();
}
+ @Test // DATAMONGO-1712
+ public void deleteByIdUsingMonoShouldRemoveEntity() {
+
+ StepVerifier.create(repository.deleteById(Mono.just(dave.id))).verifyComplete();
+
+ StepVerifier.create(repository.existsById(dave.id)).expectNext(false).verifyComplete();
+ }
+
+ @Test // DATAMONGO-1712
+ public void deleteByIdUsingFluxShouldRemoveEntity() {
+
+ StepVerifier.create(repository.deleteById(Flux.just(dave.id, oliver.id))).verifyComplete();
+
+ StepVerifier.create(repository.existsById(dave.id)).expectNext(false).verifyComplete();
+ StepVerifier.create(repository.existsById(oliver.id)).expectNext(true).verifyComplete();
+ }
+
@Test // DATAMONGO-1444
public void deleteShouldRemoveEntity() {