diff --git a/pom.xml b/pom.xml
index e94e7af..5d98456 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,6 +107,11 @@
${springdata.relational}
+
+ org.springframework
+ spring-r2dbc
+
+
org.springframeworkspring-tx
diff --git a/src/main/asciidoc/index.adoc b/src/main/asciidoc/index.adoc
index 18e5f7e..16c2c6f 100644
--- a/src/main/asciidoc/index.adoc
+++ b/src/main/asciidoc/index.adoc
@@ -52,3 +52,4 @@ include::reference/kotlin.adoc[leveloffset=+1]
:numbered!:
include::{spring-data-commons-docs}/repository-query-keywords-reference.adoc[leveloffset=+1]
include::{spring-data-commons-docs}/repository-query-return-types-reference.adoc[leveloffset=+1]
+include::reference/r2dbc-upgrading.adoc[leveloffset=+1]
diff --git a/src/main/asciidoc/reference/r2dbc-upgrading.adoc b/src/main/asciidoc/reference/r2dbc-upgrading.adoc
new file mode 100644
index 0000000..2bda475
--- /dev/null
+++ b/src/main/asciidoc/reference/r2dbc-upgrading.adoc
@@ -0,0 +1,48 @@
+[appendix]
+= Migration Guide
+
+The following sections explain how to migrate to a newer version of Spring Data R2DBC.
+
+[[upgrading.1.1-1.2]]
+== Upgrading from 1.1.x to 1.2.x
+
+Spring Data R2DBC was developed with the intent to evaluate how well R2DBC can integrate with Spring applications.
+One of the main aspects was to move core support into Spring Framework once R2DBC support has proven useful.
+Spring Framework 5.3 ships with a new module: Spring R2DBC.
+
+`spring-r2dbc` ships core R2DBC functionality (a slim variant of `DatabaseClient`, Transaction Manager, Connection Factory initialization, Exception translation) that was initially provided by Spring Data R2DBC. The 1.2.0 release aligns with what's provided in Spring R2DBC by making several changes outlined in the following sections.
+
+[[upgrading.1.1-1.2.deprecation]]
+=== Deprecations
+
+* Deprecation of `o.s.d.r2dbc.core.DatabaseClient` and its support classes `ConnectionAccessor`, `FetchSpec`, `SqlProvider` and a few more.
+Named parameter support classes such as `NamedParameterExpander` are encapsulated by Spring R2DBC's `DatabaseClient` implementation hence we're not providing replacements as this was internal API in the first place.
+Use `o.s.r2dbc.core.DatabaseClient` and their Spring R2DBC replacements available from `org.springframework.r2dbc.core`.
+Entity-based methods (`select`/`insert`/`update`/`delete`) methods are available through `R2dbcEntityTemplate` which was introduced with version 1.1.
+* Deprecation of `o.s.d.r2dbc.connectionfactory`, `o.s.d.r2dbc.connectionfactory.init`, and `o.s.d.r2dbc.connectionfactory.lookup` packages.
+Use Spring R2DBC's variant which you can find at `o.s.r2dbc.connection`.
+* Deprecation of `o.s.d.r2dbc.convert.ColumnMapRowMapper`.
+Use `o.s.r2dbc.core.ColumnMapRowMapper` instead.
+* Deprecation of binding support classes `o.s.d.r2dbc.dialect.Bindings`, `BindMarker`, `BindMarkers`, `BindMarkersFactory` and related types.
+Use replacements from `org.springframework.r2dbc.core.binding`.
+* Deprecation of `BadSqlGrammarException`, `UncategorizedR2dbcException` and exception translation at `o.s.d.r2dbc.support`.
+Spring R2DBC provides a slim exception translation variant without an SPI for now available through `o.s.r2dbc.connection.ConnectionFactoryUtils#convertR2dbcException`.
+
+[[upgrading.1.1-1.2.replacements]]
+=== Usage of replacements provided by Spring R2DBC
+
+To ease migration, several deprecated types are now subtypes of their replacements provided by Spring R2DBC. Spring Data R2DBC has changes several methods or introduced new methods accepting Spring R2DBC types.
+Specifically the following classes are affected:
+
+* `R2dbcEntityTemplate`
+* `R2dbcDialect`
+* Types in `org.springframework.data.r2dbc.query`
+
+We recommend that you review your imports if you work with these types directly.
+
+[[upgrading.1.1-1.2.dependencies]]
+=== Dependency Changes
+
+To make use of Spring R2DBC, make sure to include the following dependency:
+
+* `org.springframework:spring-r2dbc`
diff --git a/src/main/java/org/springframework/data/r2dbc/BadSqlGrammarException.java b/src/main/java/org/springframework/data/r2dbc/BadSqlGrammarException.java
index 779cea7..6368641 100644
--- a/src/main/java/org/springframework/data/r2dbc/BadSqlGrammarException.java
+++ b/src/main/java/org/springframework/data/r2dbc/BadSqlGrammarException.java
@@ -17,8 +17,6 @@ package org.springframework.data.r2dbc;
import io.r2dbc.spi.R2dbcException;
-import org.springframework.dao.InvalidDataAccessResourceUsageException;
-
/**
* Exception thrown when SQL specified is invalid. Such exceptions always have a {@link io.r2dbc.spi.R2dbcException}
* root cause.
@@ -28,13 +26,13 @@ import org.springframework.dao.InvalidDataAccessResourceUsageException;
* without affecting code using this class.
*
* @author Mark Paluch
+ * @deprecated since 1.2, use directly Spring R2DBC's {@link org.springframework.r2dbc.BadSqlGrammarException} instead.
*/
-public class BadSqlGrammarException extends InvalidDataAccessResourceUsageException {
+@Deprecated
+public class BadSqlGrammarException extends org.springframework.r2dbc.BadSqlGrammarException {
private static final long serialVersionUID = 3814579246913482054L;
- private final String sql;
-
/**
* Creates a new {@link BadSqlGrammarException}.
*
@@ -43,10 +41,7 @@ public class BadSqlGrammarException extends InvalidDataAccessResourceUsageExcept
* @param ex the root cause.
*/
public BadSqlGrammarException(String task, String sql, R2dbcException ex) {
-
- super(task + "; bad SQL grammar [" + sql + "]", ex);
-
- this.sql = sql;
+ super(task, sql, ex);
}
/**
@@ -60,6 +55,6 @@ public class BadSqlGrammarException extends InvalidDataAccessResourceUsageExcept
* Return the SQL that caused the problem.
*/
public String getSql() {
- return this.sql;
+ return super.getSql();
}
}
diff --git a/src/main/java/org/springframework/data/r2dbc/InvalidResultAccessException.java b/src/main/java/org/springframework/data/r2dbc/InvalidResultAccessException.java
index e79f59e..8ac229d 100644
--- a/src/main/java/org/springframework/data/r2dbc/InvalidResultAccessException.java
+++ b/src/main/java/org/springframework/data/r2dbc/InvalidResultAccessException.java
@@ -24,13 +24,15 @@ import org.springframework.lang.Nullable;
* Exception thrown when a {@link io.r2dbc.spi.Result} has been accessed in an invalid fashion. Such exceptions always
* have a {@link io.r2dbc.spi.R2dbcException} root cause.
*
- * This typically happens when an invalid {@link org.springframework.data.r2dbc.core.FetchSpec} column index or name
- * has been specified.
+ * This typically happens when an invalid {@link org.springframework.data.r2dbc.core.FetchSpec} column index or name has
+ * been specified.
*
* @author Mark Paluch
* @see BadSqlGrammarException
+ * @deprecated since 1.2, not in use anymore.
*/
@SuppressWarnings("serial")
+@Deprecated
public class InvalidResultAccessException extends InvalidDataAccessResourceUsageException {
private final @Nullable String sql;
diff --git a/src/main/java/org/springframework/data/r2dbc/UncategorizedR2dbcException.java b/src/main/java/org/springframework/data/r2dbc/UncategorizedR2dbcException.java
index d74bd5b..e54b282 100644
--- a/src/main/java/org/springframework/data/r2dbc/UncategorizedR2dbcException.java
+++ b/src/main/java/org/springframework/data/r2dbc/UncategorizedR2dbcException.java
@@ -17,23 +17,19 @@ package org.springframework.data.r2dbc;
import io.r2dbc.spi.R2dbcException;
-import org.springframework.dao.UncategorizedDataAccessException;
import org.springframework.lang.Nullable;
/**
* Exception thrown when we can't classify a {@link R2dbcException} into one of our generic data access exceptions.
*
* @author Mark Paluch
+ * @deprecated since 1.2, use Spring R2DBC's {@link org.springframework.r2dbc.UncategorizedR2dbcException} instead.
*/
-public class UncategorizedR2dbcException extends UncategorizedDataAccessException {
+@Deprecated
+public class UncategorizedR2dbcException extends org.springframework.r2dbc.UncategorizedR2dbcException {
private static final long serialVersionUID = 361587356435210266L;
- /**
- * SQL that led to the problem
- */
- private final @Nullable String sql;
-
/**
* Creates a new {@link UncategorizedR2dbcException}.
*
@@ -42,10 +38,7 @@ public class UncategorizedR2dbcException extends UncategorizedDataAccessExceptio
* @param ex the root cause
*/
public UncategorizedR2dbcException(String task, @Nullable String sql, R2dbcException ex) {
-
- super(String.format("%s; uncategorized R2dbcException%s; %s", task, sql != null ? " for SQL [" + sql + "]" : "",
- ex.getMessage()), ex);
- this.sql = sql;
+ super(task, sql, ex);
}
/**
@@ -62,6 +55,6 @@ public class UncategorizedR2dbcException extends UncategorizedDataAccessExceptio
*/
@Nullable
public String getSql() {
- return this.sql;
+ return super.getSql();
}
}
diff --git a/src/main/java/org/springframework/data/r2dbc/config/AbstractR2dbcConfiguration.java b/src/main/java/org/springframework/data/r2dbc/config/AbstractR2dbcConfiguration.java
index 765160e..379c5df 100644
--- a/src/main/java/org/springframework/data/r2dbc/config/AbstractR2dbcConfiguration.java
+++ b/src/main/java/org/springframework/data/r2dbc/config/AbstractR2dbcConfiguration.java
@@ -40,8 +40,6 @@ import org.springframework.data.r2dbc.dialect.DialectResolver;
import org.springframework.data.r2dbc.dialect.R2dbcDialect;
import org.springframework.data.r2dbc.mapping.R2dbcMappingContext;
import org.springframework.data.r2dbc.support.R2dbcExceptionSubclassTranslator;
-import org.springframework.data.r2dbc.support.R2dbcExceptionTranslator;
-import org.springframework.data.r2dbc.support.SqlStateR2dbcExceptionTranslator;
import org.springframework.data.relational.core.conversion.BasicRelationalConverter;
import org.springframework.data.relational.core.mapping.NamingStrategy;
import org.springframework.lang.Nullable;
@@ -100,11 +98,9 @@ public abstract class AbstractR2dbcConfiguration implements ApplicationContextAw
* @throws IllegalArgumentException if any of the required args is {@literal null}.
*/
@Bean({ "r2dbcDatabaseClient", "databaseClient" })
- public DatabaseClient databaseClient(ReactiveDataAccessStrategy dataAccessStrategy,
- R2dbcExceptionTranslator exceptionTranslator) {
+ public DatabaseClient databaseClient(ReactiveDataAccessStrategy dataAccessStrategy) {
Assert.notNull(dataAccessStrategy, "DataAccessStrategy must not be null!");
- Assert.notNull(exceptionTranslator, "ExceptionTranslator must not be null!");
SpelAwareProxyProjectionFactory projectionFactory = new SpelAwareProxyProjectionFactory();
if (context != null) {
@@ -115,7 +111,7 @@ public abstract class AbstractR2dbcConfiguration implements ApplicationContextAw
return DatabaseClient.builder() //
.connectionFactory(lookupConnectionFactory()) //
.dataAccessStrategy(dataAccessStrategy) //
- .exceptionTranslator(exceptionTranslator) //
+ .exceptionTranslator(new R2dbcExceptionSubclassTranslator()) //
.projectionFactory(projectionFactory) //
.build();
}
@@ -200,19 +196,6 @@ public abstract class AbstractR2dbcConfiguration implements ApplicationContextAw
return StoreConversions.of(dialect.getSimpleTypeHolder(), converters);
}
- /**
- * Creates a {@link R2dbcExceptionTranslator} using the configured {@link #connectionFactory() ConnectionFactory}.
- *
- * @return must not be {@literal null}.
- * @see #connectionFactory()
- * @see R2dbcExceptionSubclassTranslator
- * @see SqlStateR2dbcExceptionTranslator
- */
- @Bean
- public R2dbcExceptionTranslator exceptionTranslator() {
- return new R2dbcExceptionSubclassTranslator();
- }
-
ConnectionFactory lookupConnectionFactory() {
ApplicationContext context = this.context;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionFactoryUtils.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionFactoryUtils.java
index 871077f..731e425 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionFactoryUtils.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionFactoryUtils.java
@@ -39,7 +39,9 @@ import org.springframework.util.Assert;
*
* @author Mark Paluch
* @author Christoph Strobl
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public abstract class ConnectionFactoryUtils {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHandle.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHandle.java
index dd3c606..62d1177 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHandle.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHandle.java
@@ -23,8 +23,10 @@ import io.r2dbc.spi.Connection;
* @author Mark Paluch
* @see SimpleConnectionHandle
* @see ConnectionHolder
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
@FunctionalInterface
+@Deprecated
public interface ConnectionHandle {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHolder.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHolder.java
index 284c20c..ea976f3 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHolder.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionHolder.java
@@ -22,8 +22,8 @@ import org.springframework.transaction.support.ResourceHolderSupport;
import org.springframework.util.Assert;
/**
- * Resource holder wrapping a R2DBC {@link Connection}. {@link R2dbcTransactionManager} binds instances of
- * this class to the thread, for a specific {@link ConnectionFactory}.
+ * Resource holder wrapping a R2DBC {@link Connection}. {@link R2dbcTransactionManager} binds instances of this class to
+ * the thread, for a specific {@link ConnectionFactory}.
*
* Inherits rollback-only support for nested R2DBC transactions and reference count functionality from the base class.
*
@@ -33,7 +33,9 @@ import org.springframework.util.Assert;
* @author Christoph Strobl
* @see R2dbcTransactionManager
* @see ConnectionFactoryUtils
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public class ConnectionHolder extends ResourceHolderSupport {
@Nullable private ConnectionHandle connectionHandle;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionProxy.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionProxy.java
index c607a88..a278326 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionProxy.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionProxy.java
@@ -26,7 +26,9 @@ import io.r2dbc.spi.Wrapped;
*
* @author Mark Paluch
* @author Christoph Strobl
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use R2DBC's {@link Wrapped} mechanism instead.
*/
+@Deprecated
public interface ConnectionProxy extends Connection, Wrapped {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/DelegatingConnectionFactory.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/DelegatingConnectionFactory.java
index 12f7eac..903f8ee 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/DelegatingConnectionFactory.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/DelegatingConnectionFactory.java
@@ -32,7 +32,9 @@ import org.springframework.util.Assert;
*
* @author Mark Paluch
* @see #create
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public class DelegatingConnectionFactory implements ConnectionFactory, Wrapped {
private final ConnectionFactory targetConnectionFactory;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/R2dbcTransactionManager.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/R2dbcTransactionManager.java
index e7c1d26..b6324a1 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/R2dbcTransactionManager.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/R2dbcTransactionManager.java
@@ -73,7 +73,9 @@ import org.springframework.util.Assert;
* @see ConnectionFactoryUtils#releaseConnection
* @see TransactionAwareConnectionFactoryProxy
* @see DatabaseClient
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public class R2dbcTransactionManager extends AbstractReactiveTransactionManager implements InitializingBean {
private ConnectionFactory connectionFactory;
@@ -135,7 +137,7 @@ public class R2dbcTransactionManager extends AbstractReactiveTransactionManager
*
* If no custom translator is provided, a default {@link R2dbcExceptionSubclassTranslator} is used which translates
* {@link R2dbcException}'s subclasses into Springs {@link DataAccessException} hierarchy.
- *
+ *
* @see R2dbcExceptionSubclassTranslator
* @since 1.1
*/
@@ -526,7 +528,7 @@ public class R2dbcTransactionManager extends AbstractReactiveTransactionManager
*
* The default implementation throws a {@link TransactionSystemException}. Subclasses may specifically identify
* concurrency failures etc.
- *
+ *
* @param task the task description (commit or rollback).
* @param ex the SQLException thrown from commit/rollback.
* @return the translated exception to throw, either a {@link org.springframework.dao.DataAccessException} or a
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/SimpleConnectionHandle.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/SimpleConnectionHandle.java
index 40c27ed..27206cf 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/SimpleConnectionHandle.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/SimpleConnectionHandle.java
@@ -24,7 +24,9 @@ import org.springframework.util.Assert;
*
* @author Mark Paluch
* @author Christoph Strobl
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public class SimpleConnectionHandle implements ConnectionHandle {
private final Connection connection;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/SingleConnectionConnectionFactory.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/SingleConnectionConnectionFactory.java
index 115d758..488a23a 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/SingleConnectionConnectionFactory.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/SingleConnectionConnectionFactory.java
@@ -53,7 +53,9 @@ import org.springframework.util.Assert;
* @see #create()
* @see io.r2dbc.spi.Connection#close()
* @see ConnectionFactoryUtils#releaseConnection(io.r2dbc.spi.Connection, ConnectionFactory)
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public class SingleConnectionConnectionFactory extends DelegatingConnectionFactory
implements SmartConnectionFactory, DisposableBean {
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/SmartConnectionFactory.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/SmartConnectionFactory.java
index 802dd14..aa7f59b 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/SmartConnectionFactory.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/SmartConnectionFactory.java
@@ -27,7 +27,9 @@ import io.r2dbc.spi.ConnectionFactory;
*
* @author Mark Paluch
* @see ConnectionFactoryUtils#closeConnection
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public interface SmartConnectionFactory extends ConnectionFactory {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/TransactionAwareConnectionFactoryProxy.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/TransactionAwareConnectionFactoryProxy.java
index a3e7294..29bbad8 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/TransactionAwareConnectionFactoryProxy.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/TransactionAwareConnectionFactoryProxy.java
@@ -60,7 +60,9 @@ import org.springframework.util.ReflectionUtils;
* @see Connection#close
* @see ConnectionFactoryUtils#doGetConnection
* @see ConnectionFactoryUtils#doReleaseConnection
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection} instead.
*/
+@Deprecated
public class TransactionAwareConnectionFactoryProxy extends DelegatingConnectionFactory {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CannotReadScriptException.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CannotReadScriptException.java
index 0164c87..9c7c3b8 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CannotReadScriptException.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CannotReadScriptException.java
@@ -21,7 +21,9 @@ import org.springframework.core.io.support.EncodedResource;
* Thrown by {@link ScriptUtils} if an SQL script cannot be read.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public class CannotReadScriptException extends ScriptException {
private static final long serialVersionUID = 7253084944991764250L;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CompositeDatabasePopulator.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CompositeDatabasePopulator.java
index 4b35bc4..75e42c4 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CompositeDatabasePopulator.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/CompositeDatabasePopulator.java
@@ -31,7 +31,9 @@ import org.springframework.util.Assert;
* executing all scripts.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public class CompositeDatabasePopulator implements DatabasePopulator {
private final List populators = new ArrayList<>(4);
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java
index dd492a9..d770bf9 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java
@@ -28,7 +28,9 @@ import org.springframework.util.Assert;
*
* @author Mark Paluch
* @see DatabasePopulator
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public class ConnectionFactoryInitializer implements InitializingBean, DisposableBean {
private @Nullable ConnectionFactory connectionFactory;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulator.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulator.java
index 9e1cf05..d471d54 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulator.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulator.java
@@ -25,8 +25,10 @@ import reactor.core.publisher.Mono;
* @see ResourceDatabasePopulator
* @see DatabasePopulatorUtils
* @see ConnectionFactoryInitializer
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
@FunctionalInterface
+@Deprecated
public interface DatabasePopulator {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java
index c185385..db6ad11 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/DatabasePopulatorUtils.java
@@ -27,7 +27,9 @@ import org.springframework.util.Assert;
* Utility methods for executing a {@link DatabasePopulator}.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public abstract class DatabasePopulatorUtils {
// utility constructor
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ResourceDatabasePopulator.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ResourceDatabasePopulator.java
index 24fa7db..3b0b4c4 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ResourceDatabasePopulator.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ResourceDatabasePopulator.java
@@ -45,7 +45,9 @@ import org.springframework.util.StringUtils;
* @author Mark Paluch
* @see DatabasePopulatorUtils
* @see ScriptUtils
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public class ResourceDatabasePopulator implements DatabasePopulator {
List scripts = new ArrayList<>();
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptException.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptException.java
index 068843c..9f67503 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptException.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptException.java
@@ -22,7 +22,9 @@ import org.springframework.lang.Nullable;
* Root of the hierarchy of data access exceptions that are related to processing of SQL scripts.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public abstract class ScriptException extends DataAccessException {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptParseException.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptParseException.java
index fe43adc..b3e8dcf 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptParseException.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptParseException.java
@@ -22,7 +22,9 @@ import org.springframework.lang.Nullable;
* Thrown by {@link ScriptUtils} if an SQL script cannot be properly parsed.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public class ScriptParseException extends ScriptException {
private static final long serialVersionUID = 6130513243627087332L;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptStatementFailedException.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptStatementFailedException.java
index 0da186e..f81be86 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptStatementFailedException.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptStatementFailedException.java
@@ -21,7 +21,9 @@ import org.springframework.core.io.support.EncodedResource;
* Thrown by {@link ScriptUtils} if a statement in an SQL script failed when executing it against the target database.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public class ScriptStatementFailedException extends ScriptException {
private static final long serialVersionUID = 912676424615782262L;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptUtils.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptUtils.java
index 71f2c13..5cb3500 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptUtils.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ScriptUtils.java
@@ -48,7 +48,9 @@ import org.springframework.util.StringUtils;
* Mainly for internal use within the framework.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public abstract class ScriptUtils {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/UncategorizedScriptException.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/UncategorizedScriptException.java
index 59d8941..62b840b 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/UncategorizedScriptException.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/UncategorizedScriptException.java
@@ -20,7 +20,9 @@ package org.springframework.data.r2dbc.connectionfactory.init;
* for example, a {@link io.r2dbc.spi.R2dbcException} from R2DBC that we cannot pinpoint more precisely.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
+@Deprecated
public class UncategorizedScriptException extends ScriptException {
private static final long serialVersionUID = -3196706179230349902L;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/package-info.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/package-info.java
index 113c6ba..d76b482 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/package-info.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/package-info.java
@@ -1,5 +1,6 @@
/**
- * Provides extensible support for initializing databases through scripts.
+ * Provides extensible support for initializing databases through scripts. Deprecated since 1.2 in favor of Spring
+ * R2DBC. Use {@link org.springframework.r2dbc.connection.init} instead.
*/
@org.springframework.lang.NonNullApi
@org.springframework.lang.NonNullFields
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/AbstractRoutingConnectionFactory.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/AbstractRoutingConnectionFactory.java
index d868a9f..ec9a17a 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/AbstractRoutingConnectionFactory.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/AbstractRoutingConnectionFactory.java
@@ -42,7 +42,9 @@ import org.springframework.util.Assert;
* @see #setTargetConnectionFactories
* @see #setDefaultTargetConnectionFactory
* @see #determineCurrentLookupKey()
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.lookup} instead.
*/
+@Deprecated
public abstract class AbstractRoutingConnectionFactory implements ConnectionFactory, InitializingBean {
private static final Object FALLBACK_MARKER = new Object();
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/BeanFactoryConnectionFactoryLookup.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/BeanFactoryConnectionFactoryLookup.java
index f70fc79..8ba6005 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/BeanFactoryConnectionFactoryLookup.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/BeanFactoryConnectionFactoryLookup.java
@@ -30,7 +30,9 @@ import org.springframework.util.Assert;
*
* @author Mark Paluch
* @see BeanFactory
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.lookup} instead.
*/
+@Deprecated
public class BeanFactoryConnectionFactoryLookup implements ConnectionFactoryLookup, BeanFactoryAware {
@Nullable private BeanFactory beanFactory;
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookup.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookup.java
index 2d66c82..fdc8179 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookup.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookup.java
@@ -21,8 +21,10 @@ import io.r2dbc.spi.ConnectionFactory;
* Strategy interface for looking up {@link ConnectionFactory} by name.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.lookup} instead.
*/
@FunctionalInterface
+@Deprecated
public interface ConnectionFactoryLookup {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookupFailureException.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookupFailureException.java
index 3783dfa..c70a834 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookupFailureException.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/ConnectionFactoryLookupFailureException.java
@@ -22,8 +22,10 @@ import org.springframework.dao.NonTransientDataAccessException;
* {@link io.r2dbc.spi.ConnectionFactory} could not be obtained.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.lookup} instead.
*/
@SuppressWarnings("serial")
+@Deprecated
public class ConnectionFactoryLookupFailureException extends NonTransientDataAccessException {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/MapConnectionFactoryLookup.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/MapConnectionFactoryLookup.java
index 12ddea3..99e059f 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/MapConnectionFactoryLookup.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/MapConnectionFactoryLookup.java
@@ -31,7 +31,9 @@ import org.springframework.util.Assert;
*
* @author Mark Paluch
* @author Jens Schauder
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.lookup} instead.
*/
+@Deprecated
public class MapConnectionFactoryLookup implements ConnectionFactoryLookup {
private final Map connectionFactories = new HashMap<>();
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/SingleConnectionFactoryLookup.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/SingleConnectionFactoryLookup.java
index 28d6d12..521a215 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/SingleConnectionFactoryLookup.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/SingleConnectionFactoryLookup.java
@@ -24,7 +24,9 @@ import org.springframework.util.Assert;
* returned for any connection factory name.
*
* @author Mark Paluch
+ * @deprecated since 1.2 in favor of Spring R2DBC. Use {@link org.springframework.r2dbc.connection.lookup} instead.
*/
+@Deprecated
public class SingleConnectionFactoryLookup implements ConnectionFactoryLookup {
private final ConnectionFactory connectionFactory;
@@ -41,7 +43,7 @@ public class SingleConnectionFactoryLookup implements ConnectionFactoryLookup {
this.connectionFactory = connectionFactory;
}
- /*
+ /*
* (non-Javadoc)
* @see org.springframework.data.r2dbc.connectionfactory.lookup.ConnectionFactoryLookup#getConnectionFactory(java.lang.String)
*/
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/package-info.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/package-info.java
index efb4e61..e3b1027 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/package-info.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/lookup/package-info.java
@@ -1,5 +1,6 @@
/**
- * Provides a strategy for looking up R2DBC ConnectionFactories by name.
+ * Provides a strategy for looking up R2DBC ConnectionFactories by name. Deprecated since 1.2 in favor of Spring R2DBC.
+ * Use {@link org.springframework.r2dbc.connection.lookup} instead.
*/
@org.springframework.lang.NonNullApi
@org.springframework.lang.NonNullFields
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/package-info.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/package-info.java
index 6e09329..b55ff51 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/package-info.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/package-info.java
@@ -1,5 +1,6 @@
/**
- * Connection and ConnectionFactory specifics for R2DBC.
+ * Connection and ConnectionFactory specifics for R2DBC. Deprecated since 1.2 in favor of Spring R2DBC. Use
+ * {@link org.springframework.r2dbc.connection} instead.
*/
@org.springframework.lang.NonNullApi
@org.springframework.lang.NonNullFields
diff --git a/src/main/java/org/springframework/data/r2dbc/convert/ColumnMapRowMapper.java b/src/main/java/org/springframework/data/r2dbc/convert/ColumnMapRowMapper.java
index f719aae..7fff70f 100644
--- a/src/main/java/org/springframework/data/r2dbc/convert/ColumnMapRowMapper.java
+++ b/src/main/java/org/springframework/data/r2dbc/convert/ColumnMapRowMapper.java
@@ -19,7 +19,6 @@ import io.r2dbc.spi.ColumnMetadata;
import io.r2dbc.spi.Row;
import io.r2dbc.spi.RowMetadata;
-import java.util.Collection;
import java.util.Map;
import java.util.function.BiFunction;
@@ -40,26 +39,15 @@ import org.springframework.util.LinkedCaseInsensitiveMap;
* names in the same casing as exposed by the driver.
*
* @author Mark Paluch
+ * @deprecated since 1.2, use Spring R2DBC's {@link org.springframework.r2dbc.core.ColumnMapRowMapper} directly.
*/
-public class ColumnMapRowMapper implements BiFunction> {
+public class ColumnMapRowMapper extends org.springframework.r2dbc.core.ColumnMapRowMapper {
public final static ColumnMapRowMapper INSTANCE = new ColumnMapRowMapper();
@Override
public Map apply(Row row, RowMetadata rowMetadata) {
-
- Collection extends ColumnMetadata> columns = IterableUtils.toCollection(rowMetadata.getColumnMetadatas());
- int columnCount = columns.size();
- Map mapOfColValues = createColumnMap(columnCount);
-
- int index = 0;
- for (ColumnMetadata column : columns) {
-
- String key = getColumnKey(column.getName());
- Object obj = getColumnValue(row, index++);
- mapOfColValues.put(key, obj);
- }
- return mapOfColValues;
+ return super.apply(row, rowMetadata);
}
/**
@@ -72,7 +60,7 @@ public class ColumnMapRowMapper implements BiFunction createColumnMap(int columnCount) {
- return new LinkedCaseInsensitiveMap<>(columnCount);
+ return super.createColumnMap(columnCount);
}
/**
@@ -83,7 +71,7 @@ public class ColumnMapRowMapper implements BiFunction Collection toCollection(Iterable iterable) {
-
- Assert.notNull(iterable, "Iterable must not be null!");
-
- if (iterable instanceof Collection) {
- return (Collection) iterable;
- }
-
- List result = new ArrayList<>();
-
- for (T element : iterable) {
- result.add(element);
- }
-
- return result;
- }
-
- static List toList(Iterable iterable) {
-
- Assert.notNull(iterable, "Iterable must not be null!");
-
- if (iterable instanceof List) {
- return (List) iterable;
- }
-
- List result = new ArrayList<>();
-
- for (T element : iterable) {
- result.add(element);
- }
-
- return result;
- }
-}
diff --git a/src/main/java/org/springframework/data/r2dbc/core/BindParameterSource.java b/src/main/java/org/springframework/data/r2dbc/core/BindParameterSource.java
index 5403c8d..c4dfd26 100644
--- a/src/main/java/org/springframework/data/r2dbc/core/BindParameterSource.java
+++ b/src/main/java/org/springframework/data/r2dbc/core/BindParameterSource.java
@@ -29,7 +29,9 @@ import org.springframework.lang.Nullable;
*
* @author Mark Paluch
* @see MapBindParameterSource
+ * @deprecated since 1.2, without replacement.
*/
+@Deprecated
public interface BindParameterSource {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/core/ConnectionAccessor.java b/src/main/java/org/springframework/data/r2dbc/core/ConnectionAccessor.java
index 219670e..fc7b77b 100644
--- a/src/main/java/org/springframework/data/r2dbc/core/ConnectionAccessor.java
+++ b/src/main/java/org/springframework/data/r2dbc/core/ConnectionAccessor.java
@@ -32,8 +32,9 @@ import org.springframework.dao.DataAccessException;
* long the allocated {@link Connection} is valid. Connections are released after the publisher terminates.
*
* @author Mark Paluch
+ * @deprecated since 1.2, use Spring R2DBC's {@link org.springframework.r2dbc.core.DatabaseClient} support instead.
*/
-public interface ConnectionAccessor {
+public interface ConnectionAccessor extends org.springframework.r2dbc.core.ConnectionAccessor {
/**
* Execute a callback {@link Function} within a {@link Connection} scope. The function is responsible for creating a
diff --git a/src/main/java/org/springframework/data/r2dbc/core/DatabaseClient.java b/src/main/java/org/springframework/data/r2dbc/core/DatabaseClient.java
index 593e6c6..e1f0ae5 100644
--- a/src/main/java/org/springframework/data/r2dbc/core/DatabaseClient.java
+++ b/src/main/java/org/springframework/data/r2dbc/core/DatabaseClient.java
@@ -49,7 +49,9 @@ import org.springframework.util.Assert;
*
* @author Mark Paluch
* @author Bogdan Ilchyshyn
+ * @deprecated since 1.2, use Spring R2DBC's {@link org.springframework.r2dbc.core.DatabaseClient} support instead.
*/
+@Deprecated
public interface DatabaseClient {
/**
diff --git a/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java b/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java
index 194d994..5690ba6 100644
--- a/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java
+++ b/src/main/java/org/springframework/data/r2dbc/core/DefaultDatabaseClient.java
@@ -44,6 +44,7 @@ import java.util.stream.Collectors;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.reactivestreams.Publisher;
+
import org.springframework.dao.DataAccessException;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.domain.Pageable;
@@ -62,6 +63,7 @@ import org.springframework.data.relational.core.query.Criteria;
import org.springframework.data.relational.core.query.CriteriaDefinition;
import org.springframework.data.relational.core.sql.SqlIdentifier;
import org.springframework.lang.Nullable;
+import org.springframework.r2dbc.core.PreparedOperation;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
diff --git a/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java b/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java
index 75186ad..25a5e14 100644
--- a/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java
+++ b/src/main/java/org/springframework/data/r2dbc/core/DefaultReactiveDataAccessStrategy.java
@@ -46,6 +46,7 @@ import org.springframework.data.relational.core.mapping.RelationalPersistentEnti
import org.springframework.data.relational.core.mapping.RelationalPersistentProperty;
import org.springframework.data.relational.core.sql.SqlIdentifier;
import org.springframework.lang.Nullable;
+import org.springframework.r2dbc.core.Parameter;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.CollectionUtils;
@@ -280,6 +281,15 @@ public class DefaultReactiveDataAccessStrategy implements ReactiveDataAccessStra
return this.updateMapper.getBindValue(value);
}
+ /*
+ * (non-Javadoc)
+ * @see org.springframework.data.r2dbc.function.ReactiveDataAccessStrategy#getBindValue(Parameter)
+ */
+ @Override
+ public Parameter getBindValue(Parameter value) {
+ return this.updateMapper.getBindValue(value);
+ }
+
/*
* (non-Javadoc)
* @see org.springframework.data.r2dbc.function.ReactiveDataAccessStrategy#getRowMapper(java.lang.Class)
diff --git a/src/main/java/org/springframework/data/r2dbc/core/DefaultSqlResult.java b/src/main/java/org/springframework/data/r2dbc/core/DefaultSqlResult.java
index 986842c..fabcd0f 100644
--- a/src/main/java/org/springframework/data/r2dbc/core/DefaultSqlResult.java
+++ b/src/main/java/org/springframework/data/r2dbc/core/DefaultSqlResult.java
@@ -31,13 +31,9 @@ import java.util.function.Function;
*
* @author Mark Paluch
*/
-class DefaultSqlResult implements SqlResult {
+class DefaultSqlResult implements FetchSpec {
- private final static SqlResult> EMPTY = new SqlResult