From 2831685c9df5ef66efb2826c7104b814174ee4d9 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 18 Mar 2022 08:56:09 +0100 Subject: [PATCH] Adopt to Spring R2DBC changes. Update counts now return Long instead of Integer. Closes #1198 --- .../data/r2dbc/core/R2dbcEntityOperations.java | 4 ++-- .../data/r2dbc/core/R2dbcEntityTemplate.java | 10 +++++----- .../data/r2dbc/core/ReactiveDeleteOperation.java | 2 +- .../r2dbc/core/ReactiveDeleteOperationSupport.java | 2 +- .../data/r2dbc/core/ReactiveUpdateOperation.java | 2 +- .../r2dbc/core/ReactiveUpdateOperationSupport.java | 2 +- .../r2dbc/repository/query/AbstractR2dbcQuery.java | 2 +- .../r2dbc/core/ReactiveDeleteOperationExtensions.kt | 2 +- .../r2dbc/core/ReactiveUpdateOperationExtensions.kt | 2 +- .../data/r2dbc/core/R2dbcEntityTemplateUnitTests.java | 4 ++-- .../r2dbc/core/ReactiveDeleteOperationUnitTests.java | 8 ++++---- .../r2dbc/core/ReactiveUpdateOperationUnitTests.java | 8 ++++---- .../documentation/R2dbcEntityTemplateSnippets.java | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityOperations.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityOperations.java index fd2f9b564..5908a3ef2 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityOperations.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityOperations.java @@ -129,7 +129,7 @@ public interface R2dbcEntityOperations extends FluentR2dbcOperations { * @return the number of affected rows. * @throws DataAccessException if there is any problem executing the query. */ - Mono update(Query query, Update update, Class entityClass) throws DataAccessException; + Mono update(Query query, Update update, Class entityClass) throws DataAccessException; /** * Remove entities (rows)/columns from the table by {@link Query}. @@ -139,7 +139,7 @@ public interface R2dbcEntityOperations extends FluentR2dbcOperations { * @return the number of affected rows. * @throws DataAccessException if there is any problem issuing the execution. */ - Mono delete(Query query, Class entityClass) throws DataAccessException; + Mono delete(Query query, Class entityClass) throws DataAccessException; // ------------------------------------------------------------------------- // Methods dealing with org.springframework.r2dbc.core.PreparedOperation diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplate.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplate.java index 1b642c9df..61c253d0b 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplate.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplate.java @@ -428,7 +428,7 @@ public class R2dbcEntityTemplate implements R2dbcEntityOperations, BeanFactoryAw * @see org.springframework.data.r2dbc.core.R2dbcEntityOperations#update(org.springframework.data.r2dbc.query.Query, org.springframework.data.r2dbc.query.Update, java.lang.Class) */ @Override - public Mono update(Query query, Update update, Class entityClass) throws DataAccessException { + public Mono update(Query query, Update update, Class entityClass) throws DataAccessException { Assert.notNull(query, "Query must not be null"); Assert.notNull(update, "Update must not be null"); @@ -437,7 +437,7 @@ public class R2dbcEntityTemplate implements R2dbcEntityOperations, BeanFactoryAw return doUpdate(query, update, entityClass, getTableName(entityClass)); } - Mono doUpdate(Query query, Update update, Class entityClass, SqlIdentifier tableName) { + Mono doUpdate(Query query, Update update, Class entityClass, SqlIdentifier tableName) { StatementMapper statementMapper = dataAccessStrategy.getStatementMapper().forType(entityClass); @@ -458,7 +458,7 @@ public class R2dbcEntityTemplate implements R2dbcEntityOperations, BeanFactoryAw * @see org.springframework.data.r2dbc.core.R2dbcEntityOperations#delete(org.springframework.data.r2dbc.query.Query, java.lang.Class) */ @Override - public Mono delete(Query query, Class entityClass) throws DataAccessException { + public Mono delete(Query query, Class entityClass) throws DataAccessException { Assert.notNull(query, "Query must not be null"); Assert.notNull(entityClass, "Entity class must not be null"); @@ -466,7 +466,7 @@ public class R2dbcEntityTemplate implements R2dbcEntityOperations, BeanFactoryAw return doDelete(query, entityClass, getTableName(entityClass)); } - Mono doDelete(Query query, Class entityClass, SqlIdentifier tableName) { + Mono doDelete(Query query, Class entityClass, SqlIdentifier tableName) { StatementMapper statementMapper = dataAccessStrategy.getStatementMapper().forType(entityClass); @@ -479,7 +479,7 @@ public class R2dbcEntityTemplate implements R2dbcEntityOperations, BeanFactoryAw } PreparedOperation operation = statementMapper.getMappedObject(deleteSpec); - return this.databaseClient.sql(operation).fetch().rowsUpdated().defaultIfEmpty(0); + return this.databaseClient.sql(operation).fetch().rowsUpdated().defaultIfEmpty(0L); } // ------------------------------------------------------------------------- diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperation.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperation.java index ec70a7f8e..b95d1a2bb 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperation.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperation.java @@ -113,7 +113,7 @@ public interface ReactiveDeleteOperation { * @return the number of affected rows; never {@literal null}. * @see Mono */ - Mono all(); + Mono all(); } /** diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationSupport.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationSupport.java index 6c7c2bb8b..5cadbe665 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationSupport.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationSupport.java @@ -92,7 +92,7 @@ class ReactiveDeleteOperationSupport implements ReactiveDeleteOperation { * (non-Javadoc) * @see org.springframework.data.r2dbc.core.ReactiveDeleteOperation.TerminatingDelete#all() */ - public Mono all() { + public Mono all() { return template.doDelete(query, domainType, getTableName()); } diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperation.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperation.java index 0ae9f932d..ad063865b 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperation.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperation.java @@ -117,7 +117,7 @@ public interface ReactiveUpdateOperation { * @return the number of affected rows by the update; never {@literal null}. * @see Mono */ - Mono apply(Update update); + Mono apply(Update update); } /** diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationSupport.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationSupport.java index 013eeda00..ff8884cd8 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationSupport.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationSupport.java @@ -94,7 +94,7 @@ class ReactiveUpdateOperationSupport implements ReactiveUpdateOperation { * @see org.springframework.data.r2dbc.core.ReactiveUpdateOperation.TerminatingUpdate#apply(org.springframework.data.r2dbc.query.Update) */ @Override - public Mono apply(Update update) { + public Mono apply(Update update) { Assert.notNull(update, "Update must not be null"); diff --git a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java index ac0621b9c..e4b4cca9c 100644 --- a/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java +++ b/spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java @@ -137,7 +137,7 @@ public abstract class AbstractR2dbcQuery implements RepositoryQuery { if (Number.class.isAssignableFrom(returnedType.getReturnedType())) { return fs.rowsUpdated() - .map(integer -> converter.getConversionService().convert(integer, returnedType.getReturnedType())); + .map(count -> converter.getConversionService().convert(count, returnedType.getReturnedType())); } if (ReflectionUtils.isVoid(returnedType.getReturnedType())) { diff --git a/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveDeleteOperationExtensions.kt b/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveDeleteOperationExtensions.kt index c3b91b896..1b7db176a 100644 --- a/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveDeleteOperationExtensions.kt +++ b/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveDeleteOperationExtensions.kt @@ -33,5 +33,5 @@ inline fun ReactiveDeleteOperation.delete(): ReactiveDeleteOpe /** * Coroutines variant of [ReactiveDeleteOperation.TerminatingDelete.all]. */ -suspend fun ReactiveDeleteOperation.TerminatingDelete.allAndAwait(): Int = +suspend fun ReactiveDeleteOperation.TerminatingDelete.allAndAwait(): Long = all().awaitSingle() diff --git a/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveUpdateOperationExtensions.kt b/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveUpdateOperationExtensions.kt index b71161c7c..69c156041 100644 --- a/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveUpdateOperationExtensions.kt +++ b/spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveUpdateOperationExtensions.kt @@ -34,4 +34,4 @@ inline fun ReactiveUpdateOperation.update(): ReactiveUpdateOpe /** * Coroutines variant of [ReactiveUpdateOperation.TerminatingUpdate.apply]. */ -suspend fun ReactiveUpdateOperation.TerminatingUpdate.applyAndAwait(update: Update): Int = apply(update).awaitSingle() +suspend fun ReactiveUpdateOperation.TerminatingUpdate.applyAndAwait(update: Update): Long = apply(update).awaitSingle() diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplateUnitTests.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplateUnitTests.java index 65946fa06..f07ef3bec 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplateUnitTests.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/R2dbcEntityTemplateUnitTests.java @@ -214,7 +214,7 @@ public class R2dbcEntityTemplateUnitTests { entityTemplate .update(Query.query(Criteria.where("name").is("Walter")), Update.update("name", "Heisenberg"), Person.class) // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("UPDATE")); @@ -235,7 +235,7 @@ public class R2dbcEntityTemplateUnitTests { entityTemplate.delete(Query.query(Criteria.where("name").is("Walter")), Person.class) // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("DELETE")); diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationUnitTests.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationUnitTests.java index c70bf1854..87c8ab6f6 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationUnitTests.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveDeleteOperationUnitTests.java @@ -62,7 +62,7 @@ public class ReactiveDeleteOperationUnitTests { entityTemplate.delete(Person.class) // .all() // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("DELETE")); @@ -80,7 +80,7 @@ public class ReactiveDeleteOperationUnitTests { entityTemplate.delete(Person.class) // .from("table").all() // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("DELETE")); @@ -99,7 +99,7 @@ public class ReactiveDeleteOperationUnitTests { .matching(query(where("name").is("Walter"))) // .all() // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("DELETE")); @@ -120,7 +120,7 @@ public class ReactiveDeleteOperationUnitTests { .matching(query(where("name").is("Walter"))) // .all() // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("DELETE")); diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationUnitTests.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationUnitTests.java index 3541fe0d7..adf8ba2fb 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationUnitTests.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/core/ReactiveUpdateOperationUnitTests.java @@ -63,7 +63,7 @@ public class ReactiveUpdateOperationUnitTests { entityTemplate.update(Person.class) // .apply(Update.update("name", "Heisenberg")) // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("UPDATE")); @@ -82,7 +82,7 @@ public class ReactiveUpdateOperationUnitTests { entityTemplate.update(Person.class) // .inTable("table").apply(Update.update("name", "Heisenberg")) // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("UPDATE")); @@ -102,7 +102,7 @@ public class ReactiveUpdateOperationUnitTests { .matching(query(where("name").is("Walter"))) // .apply(Update.update("name", "Heisenberg")) // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("UPDATE")); @@ -124,7 +124,7 @@ public class ReactiveUpdateOperationUnitTests { .matching(query(where("name").is("Walter"))) // .apply(Update.update("name", "Heisenberg")) // .as(StepVerifier::create) // - .expectNext(1) // + .expectNext(1L) // .verifyComplete(); StatementRecorder.RecordedStatement statement = recorder.getCreatedStatement(s -> s.startsWith("UPDATE")); diff --git a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/documentation/R2dbcEntityTemplateSnippets.java b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/documentation/R2dbcEntityTemplateSnippets.java index 30ab55cdd..8b8f9cb7c 100644 --- a/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/documentation/R2dbcEntityTemplateSnippets.java +++ b/spring-data-r2dbc/src/test/java/org/springframework/data/r2dbc/documentation/R2dbcEntityTemplateSnippets.java @@ -83,7 +83,7 @@ class R2dbcEntityTemplateSnippets { void fluentUpdate(R2dbcEntityTemplate template) { // tag::update[] - Mono update = template.update(Person.class) // <1> + Mono update = template.update(Person.class) // <1> .inTable("other_table") // <2> .matching(query(where("firstname").is("John"))) // <3> .apply(update("age", 42)); // <4> @@ -93,7 +93,7 @@ class R2dbcEntityTemplateSnippets { void delete(R2dbcEntityTemplate template) { // tag::delete[] - Mono delete = template.delete(Person.class) // <1> + Mono delete = template.delete(Person.class) // <1> .from("other_table") // <2> .matching(query(where("firstname").is("John"))) // <3> .all(); // <4>