diff --git a/src/main/java/org/springframework/data/jdbc/core/function/ConnectionAccessor.java b/src/main/java/org/springframework/data/r2dbc/function/ConnectionAccessor.java similarity index 98% rename from src/main/java/org/springframework/data/jdbc/core/function/ConnectionAccessor.java rename to src/main/java/org/springframework/data/r2dbc/function/ConnectionAccessor.java index aad998a..6f9b4b4 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/ConnectionAccessor.java +++ b/src/main/java/org/springframework/data/r2dbc/function/ConnectionAccessor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.Connection; import reactor.core.publisher.Flux; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/DatabaseClient.java b/src/main/java/org/springframework/data/r2dbc/function/DatabaseClient.java similarity index 99% rename from src/main/java/org/springframework/data/jdbc/core/function/DatabaseClient.java rename to src/main/java/org/springframework/data/r2dbc/function/DatabaseClient.java index e94f36e..986200c 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/DatabaseClient.java +++ b/src/main/java/org/springframework/data/r2dbc/function/DatabaseClient.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.ConnectionFactory; import io.r2dbc.spi.Row; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/DefaultDatabaseClient.java b/src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClient.java similarity index 96% rename from src/main/java/org/springframework/data/jdbc/core/function/DefaultDatabaseClient.java rename to src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClient.java index 5146746..1b4378d 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/DefaultDatabaseClient.java +++ b/src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClient.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.Connection; import io.r2dbc.spi.ConnectionFactory; @@ -53,7 +53,8 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.NullHandling; import org.springframework.data.domain.Sort.Order; -import org.springframework.data.jdbc.core.function.connectionfactory.ConnectionProxy; +import org.springframework.data.r2dbc.function.connectionfactory.ConnectionProxy; +import org.springframework.data.r2dbc.function.convert.ColumnMapRowMapper; import org.springframework.data.util.Pair; import org.springframework.jdbc.core.SqlProvider; import org.springframework.jdbc.support.SQLExceptionTranslator; @@ -240,7 +241,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default {@link org.springframework.data.jdbc.core.function.DatabaseClient.SqlSpec} implementation. + * Default {@link DatabaseClient.SqlSpec} implementation. */ private class DefaultSqlSpec implements SqlSpec { @@ -261,8 +262,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Base class for {@link org.springframework.data.jdbc.core.function.DatabaseClient.GenericExecuteSpec} - * implementations. + * Base class for {@link DatabaseClient.GenericExecuteSpec} implementations. */ @RequiredArgsConstructor private class GenericExecuteSpecSupport { @@ -358,7 +358,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default {@link org.springframework.data.jdbc.core.function.DatabaseClient.GenericExecuteSpec} implementation. + * Default {@link DatabaseClient.GenericExecuteSpec} implementation. */ private class DefaultGenericExecuteSpec extends GenericExecuteSpecSupport implements GenericExecuteSpec { @@ -422,7 +422,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default {@link org.springframework.data.jdbc.core.function.DatabaseClient.GenericExecuteSpec} implementation. + * Default {@link DatabaseClient.GenericExecuteSpec} implementation. */ @SuppressWarnings("unchecked") private class DefaultTypedGenericExecuteSpec extends GenericExecuteSpecSupport implements TypedExecuteSpec { @@ -490,7 +490,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default {@link org.springframework.data.jdbc.core.function.DatabaseClient.SelectFromSpec} implementation. + * Default {@link DatabaseClient.SelectFromSpec} implementation. */ class DefaultSelectFromSpec implements SelectFromSpec { @@ -506,8 +506,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Base class for {@link org.springframework.data.jdbc.core.function.DatabaseClient.GenericExecuteSpec} - * implementations. + * Base class for {@link DatabaseClient.GenericExecuteSpec} implementations. */ @RequiredArgsConstructor private abstract class DefaultSelectSpecSupport { @@ -678,7 +677,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default implementation of {@link org.springframework.data.jdbc.core.function.DatabaseClient.TypedInsertSpec}. + * Default implementation of {@link DatabaseClient.TypedInsertSpec}. */ @SuppressWarnings("unchecked") private class DefaultTypedSelectSpec extends DefaultSelectSpecSupport implements TypedSelectSpec { @@ -779,7 +778,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default {@link org.springframework.data.jdbc.core.function.DatabaseClient.InsertIntoSpec} implementation. + * Default {@link DatabaseClient.InsertIntoSpec} implementation. */ class DefaultInsertIntoSpec implements InsertIntoSpec { @@ -795,7 +794,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default implementation of {@link org.springframework.data.jdbc.core.function.DatabaseClient.GenericInsertSpec}. + * Default implementation of {@link DatabaseClient.GenericInsertSpec}. */ @RequiredArgsConstructor class DefaultGenericInsertSpec implements GenericInsertSpec { @@ -891,7 +890,7 @@ class DefaultDatabaseClient implements DatabaseClient, ConnectionAccessor { } /** - * Default implementation of {@link org.springframework.data.jdbc.core.function.DatabaseClient.TypedInsertSpec}. + * Default implementation of {@link DatabaseClient.TypedInsertSpec}. */ @RequiredArgsConstructor class DefaultTypedInsertSpec implements TypedInsertSpec, InsertSpec { diff --git a/src/main/java/org/springframework/data/jdbc/core/function/DefaultDatabaseClientBuilder.java b/src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClientBuilder.java similarity index 95% rename from src/main/java/org/springframework/data/jdbc/core/function/DefaultDatabaseClientBuilder.java rename to src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClientBuilder.java index 0830859..8b6b1de 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/DefaultDatabaseClientBuilder.java +++ b/src/main/java/org/springframework/data/r2dbc/function/DefaultDatabaseClientBuilder.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; + +import io.r2dbc.spi.ConnectionFactory; import java.util.function.Consumer; -import org.springframework.data.jdbc.core.function.DatabaseClient.Builder; +import org.springframework.data.r2dbc.function.DatabaseClient.Builder; import org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator; import org.springframework.jdbc.support.SQLExceptionTranslator; import org.springframework.lang.Nullable; import org.springframework.util.Assert; -import io.r2dbc.spi.ConnectionFactory; - /** * Default implementation of {@link DatabaseClient.Builder}. * diff --git a/src/main/java/org/springframework/data/jdbc/core/function/DefaultFetchSpec.java b/src/main/java/org/springframework/data/r2dbc/function/DefaultFetchSpec.java similarity index 97% rename from src/main/java/org/springframework/data/jdbc/core/function/DefaultFetchSpec.java rename to src/main/java/org/springframework/data/r2dbc/function/DefaultFetchSpec.java index 5db2a68..c51bac8 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/DefaultFetchSpec.java +++ b/src/main/java/org/springframework/data/r2dbc/function/DefaultFetchSpec.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.Connection; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/DefaultReactiveDataAccessStrategy.java b/src/main/java/org/springframework/data/r2dbc/function/DefaultReactiveDataAccessStrategy.java similarity index 97% rename from src/main/java/org/springframework/data/jdbc/core/function/DefaultReactiveDataAccessStrategy.java rename to src/main/java/org/springframework/data/r2dbc/function/DefaultReactiveDataAccessStrategy.java index b7bd7a9..8a5b9bd 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/DefaultReactiveDataAccessStrategy.java +++ b/src/main/java/org/springframework/data/r2dbc/function/DefaultReactiveDataAccessStrategy.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.Row; import io.r2dbc.spi.RowMetadata; @@ -31,6 +31,7 @@ import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; import org.springframework.data.jdbc.core.mapping.JdbcPersistentProperty; import org.springframework.data.mapping.PersistentPropertyAccessor; +import org.springframework.data.r2dbc.function.convert.EntityRowMapper; import org.springframework.data.util.Pair; import org.springframework.data.util.StreamUtils; import org.springframework.util.ClassUtils; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/DefaultSqlResult.java b/src/main/java/org/springframework/data/r2dbc/function/DefaultSqlResult.java similarity index 98% rename from src/main/java/org/springframework/data/jdbc/core/function/DefaultSqlResult.java rename to src/main/java/org/springframework/data/r2dbc/function/DefaultSqlResult.java index 3cafbb3..c8262c6 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/DefaultSqlResult.java +++ b/src/main/java/org/springframework/data/r2dbc/function/DefaultSqlResult.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.Connection; import io.r2dbc.spi.Result; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/FetchSpec.java b/src/main/java/org/springframework/data/r2dbc/function/FetchSpec.java similarity index 96% rename from src/main/java/org/springframework/data/jdbc/core/function/FetchSpec.java rename to src/main/java/org/springframework/data/r2dbc/function/FetchSpec.java index 74fca95..f7e8f2d 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/FetchSpec.java +++ b/src/main/java/org/springframework/data/r2dbc/function/FetchSpec.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/ReactiveDataAccessStrategy.java b/src/main/java/org/springframework/data/r2dbc/function/ReactiveDataAccessStrategy.java similarity index 95% rename from src/main/java/org/springframework/data/jdbc/core/function/ReactiveDataAccessStrategy.java rename to src/main/java/org/springframework/data/r2dbc/function/ReactiveDataAccessStrategy.java index d2c996c..566c2ae 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/ReactiveDataAccessStrategy.java +++ b/src/main/java/org/springframework/data/r2dbc/function/ReactiveDataAccessStrategy.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.Row; import io.r2dbc.spi.RowMetadata; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/SqlResult.java b/src/main/java/org/springframework/data/r2dbc/function/SqlResult.java similarity index 95% rename from src/main/java/org/springframework/data/jdbc/core/function/SqlResult.java rename to src/main/java/org/springframework/data/r2dbc/function/SqlResult.java index b6d3d66..eabf54a 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/SqlResult.java +++ b/src/main/java/org/springframework/data/r2dbc/function/SqlResult.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import io.r2dbc.spi.Row; import io.r2dbc.spi.RowMetadata; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/connectionfactory/ConnectionProxy.java b/src/main/java/org/springframework/data/r2dbc/function/connectionfactory/ConnectionProxy.java similarity index 94% rename from src/main/java/org/springframework/data/jdbc/core/function/connectionfactory/ConnectionProxy.java rename to src/main/java/org/springframework/data/r2dbc/function/connectionfactory/ConnectionProxy.java index 6f5891f..09b16ac 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/connectionfactory/ConnectionProxy.java +++ b/src/main/java/org/springframework/data/r2dbc/function/connectionfactory/ConnectionProxy.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function.connectionfactory; +package org.springframework.data.r2dbc.function.connectionfactory; import io.r2dbc.spi.Connection; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/ColumnMapRowMapper.java b/src/main/java/org/springframework/data/r2dbc/function/convert/ColumnMapRowMapper.java similarity index 98% rename from src/main/java/org/springframework/data/jdbc/core/function/ColumnMapRowMapper.java rename to src/main/java/org/springframework/data/r2dbc/function/convert/ColumnMapRowMapper.java index 663d88f..acfa37d 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/ColumnMapRowMapper.java +++ b/src/main/java/org/springframework/data/r2dbc/function/convert/ColumnMapRowMapper.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function.convert; import io.r2dbc.spi.ColumnMetadata; import io.r2dbc.spi.Row; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/EntityRowMapper.java b/src/main/java/org/springframework/data/r2dbc/function/convert/EntityRowMapper.java similarity index 99% rename from src/main/java/org/springframework/data/jdbc/core/function/EntityRowMapper.java rename to src/main/java/org/springframework/data/r2dbc/function/convert/EntityRowMapper.java index c78d28c..3498409 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/EntityRowMapper.java +++ b/src/main/java/org/springframework/data/r2dbc/function/convert/EntityRowMapper.java @@ -13,8 +13,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function.convert; +import io.r2dbc.spi.Row; +import io.r2dbc.spi.RowMetadata; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -35,9 +37,6 @@ import org.springframework.data.mapping.model.ConvertingPropertyAccessor; import org.springframework.data.mapping.model.ParameterValueProvider; import org.springframework.util.ClassUtils; -import io.r2dbc.spi.Row; -import io.r2dbc.spi.RowMetadata; - /** * Maps a {@link io.r2dbc.spi.Row} to an entity of type {@code T}, including entities referenced. * diff --git a/src/main/java/org/springframework/data/jdbc/core/function/IterableUtils.java b/src/main/java/org/springframework/data/r2dbc/function/convert/IterableUtils.java similarity index 96% rename from src/main/java/org/springframework/data/jdbc/core/function/IterableUtils.java rename to src/main/java/org/springframework/data/r2dbc/function/convert/IterableUtils.java index 8b6e512..c65010e 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/IterableUtils.java +++ b/src/main/java/org/springframework/data/r2dbc/function/convert/IterableUtils.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function.convert; import java.util.ArrayList; import java.util.Collection; diff --git a/src/main/java/org/springframework/data/jdbc/core/function/MappingR2dbcConverter.java b/src/main/java/org/springframework/data/r2dbc/function/convert/MappingR2dbcConverter.java similarity index 98% rename from src/main/java/org/springframework/data/jdbc/core/function/MappingR2dbcConverter.java rename to src/main/java/org/springframework/data/r2dbc/function/convert/MappingR2dbcConverter.java index 7ab046f..fae1843 100644 --- a/src/main/java/org/springframework/data/jdbc/core/function/MappingR2dbcConverter.java +++ b/src/main/java/org/springframework/data/r2dbc/function/convert/MappingR2dbcConverter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function.convert; import io.r2dbc.spi.Row; import io.r2dbc.spi.RowMetadata; diff --git a/src/main/java/org/springframework/data/jdbc/repository/R2dbcRepository.java b/src/main/java/org/springframework/data/r2dbc/repository/R2dbcRepository.java similarity index 95% rename from src/main/java/org/springframework/data/jdbc/repository/R2dbcRepository.java rename to src/main/java/org/springframework/data/r2dbc/repository/R2dbcRepository.java index d797a64..eba2d5b 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/R2dbcRepository.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/R2dbcRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository; +package org.springframework.data.r2dbc.repository; import org.springframework.data.repository.NoRepositoryBean; import org.springframework.data.repository.reactive.ReactiveCrudRepository; diff --git a/src/main/java/org/springframework/data/r2dbc/repository/package-info.java b/src/main/java/org/springframework/data/r2dbc/repository/package-info.java new file mode 100644 index 0000000..a39ae50 --- /dev/null +++ b/src/main/java/org/springframework/data/r2dbc/repository/package-info.java @@ -0,0 +1,7 @@ +/** + * R2DBC-specific repository implementation. + */ +@NonNullApi +package org.springframework.data.r2dbc.repository; + +import org.springframework.lang.NonNullApi; diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/AbstractR2dbcQuery.java b/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java similarity index 82% rename from src/main/java/org/springframework/data/jdbc/repository/query/AbstractR2dbcQuery.java rename to src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java index 2e64068..3fbeeb6 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/AbstractR2dbcQuery.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/AbstractR2dbcQuery.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -21,12 +21,14 @@ import reactor.core.publisher.Mono; import org.reactivestreams.Publisher; import org.springframework.core.convert.converter.Converter; import org.springframework.data.convert.EntityInstantiators; -import org.springframework.data.jdbc.core.function.DatabaseClient; -import org.springframework.data.jdbc.core.function.DatabaseClient.GenericExecuteSpec; -import org.springframework.data.jdbc.core.function.FetchSpec; -import org.springframework.data.jdbc.core.function.MappingR2dbcConverter; -import org.springframework.data.jdbc.repository.query.R2dbcQueryExecution.ResultProcessingConverter; -import org.springframework.data.jdbc.repository.query.R2dbcQueryExecution.ResultProcessingExecution; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.r2dbc.function.DatabaseClient.GenericExecuteSpec; +import org.springframework.data.r2dbc.function.FetchSpec; +import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter; +import org.springframework.data.r2dbc.repository.query.R2dbcQueryExecution.ResultProcessingConverter; +import org.springframework.data.r2dbc.repository.query.R2dbcQueryExecution.ResultProcessingExecution; +import org.springframework.data.relational.repository.query.RelationalParameterAccessor; +import org.springframework.data.relational.repository.query.RelationalParametersParameterAccessor; import org.springframework.data.repository.query.ParameterAccessor; import org.springframework.data.repository.query.RepositoryQuery; import org.springframework.data.repository.query.ResultProcessor; @@ -79,7 +81,7 @@ public abstract class AbstractR2dbcQuery implements RepositoryQuery { public Object execute(Object[] parameters) { return method.hasReactiveWrapperParameter() ? executeDeferred(parameters) - : execute(new JdbcParametersParameterAccessor(method, parameters)); + : execute(new RelationalParametersParameterAccessor(method, parameters)); } @SuppressWarnings("unchecked") @@ -94,7 +96,7 @@ public abstract class AbstractR2dbcQuery implements RepositoryQuery { return Mono.defer(() -> (Mono) execute(parameterAccessor)); } - private Object execute(JdbcParameterAccessor parameterAccessor) { + private Object execute(RelationalParameterAccessor parameterAccessor) { // TODO: ConvertingParameterAccessor BindableQuery query = createQuery(parameterAccessor); @@ -143,5 +145,5 @@ public abstract class AbstractR2dbcQuery implements RepositoryQuery { * @param accessor must not be {@literal null}. * @return */ - protected abstract BindableQuery createQuery(JdbcParameterAccessor accessor); + protected abstract BindableQuery createQuery(RelationalParameterAccessor accessor); } diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/BindableQuery.java b/src/main/java/org/springframework/data/r2dbc/repository/query/BindableQuery.java similarity index 88% rename from src/main/java/org/springframework/data/jdbc/repository/query/BindableQuery.java rename to src/main/java/org/springframework/data/r2dbc/repository/query/BindableQuery.java index d8361d7..dc2957e 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/BindableQuery.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/BindableQuery.java @@ -13,22 +13,22 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; import java.util.function.Supplier; -import org.springframework.data.jdbc.core.function.DatabaseClient.BindSpec; +import org.springframework.data.r2dbc.function.DatabaseClient.BindSpec; /** * Interface declaring a query that supplies SQL and can bind parameters to a {@link BindSpec}. - * + * * @author Mark Paluch */ public interface BindableQuery extends Supplier { /** * Bind parameters to the {@link BindSpec query}. - * + * * @param bindSpec must not be {@literal null}. * @return the bound query object. */ diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/R2dbcParameterAccessor.java b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcParameterAccessor.java similarity index 92% rename from src/main/java/org/springframework/data/jdbc/repository/query/R2dbcParameterAccessor.java rename to src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcParameterAccessor.java index 8a1c83c..c859d7a 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/R2dbcParameterAccessor.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcParameterAccessor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -22,6 +22,7 @@ import reactor.core.publisher.MonoProcessor; import java.util.ArrayList; import java.util.List; +import org.springframework.data.relational.repository.query.RelationalParametersParameterAccessor; import org.springframework.data.repository.util.ReactiveWrapperConverters; import org.springframework.data.repository.util.ReactiveWrappers; @@ -31,7 +32,7 @@ import org.springframework.data.repository.util.ReactiveWrappers; * * @author Mark Paluch */ -class R2dbcParameterAccessor extends JdbcParametersParameterAccessor { +class R2dbcParameterAccessor extends RelationalParametersParameterAccessor { private final Object[] values; private final List> subscriptions; diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/R2dbcQueryExecution.java b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryExecution.java similarity index 94% rename from src/main/java/org/springframework/data/jdbc/repository/query/R2dbcQueryExecution.java rename to src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryExecution.java index eba2ab2..6c846ef 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/R2dbcQueryExecution.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryExecution.java @@ -13,17 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; import lombok.NonNull; import lombok.RequiredArgsConstructor; import org.springframework.core.convert.converter.Converter; import org.springframework.data.convert.EntityInstantiators; -import org.springframework.data.jdbc.core.function.FetchSpec; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; import org.springframework.data.jdbc.core.mapping.JdbcPersistentProperty; import org.springframework.data.mapping.context.MappingContext; +import org.springframework.data.r2dbc.function.FetchSpec; +import org.springframework.data.relational.repository.query.DtoInstantiatingConverter; import org.springframework.data.repository.query.ResultProcessor; import org.springframework.data.repository.query.ReturnedType; import org.springframework.util.ClassUtils; diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/R2dbcQueryMethod.java b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java similarity index 88% rename from src/main/java/org/springframework/data/jdbc/repository/query/R2dbcQueryMethod.java rename to src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java index 1e223de..55249bc 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/R2dbcQueryMethod.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; import static org.springframework.data.repository.util.ClassUtils.*; @@ -28,10 +28,14 @@ import org.springframework.data.domain.Slice; import org.springframework.data.domain.Sort; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; import org.springframework.data.jdbc.core.mapping.JdbcPersistentProperty; -import org.springframework.data.jdbc.repository.query.JdbcParameters.JdbcParameter; +import org.springframework.data.jdbc.repository.query.Query; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.projection.ProjectionFactory; +import org.springframework.data.relational.repository.query.RelationalEntityMetadata; +import org.springframework.data.relational.repository.query.RelationalParameters; +import org.springframework.data.relational.repository.query.SimpleRelationalEntityMetadata; import org.springframework.data.repository.core.RepositoryMetadata; +import org.springframework.data.repository.query.Parameter; import org.springframework.data.repository.query.QueryMethod; import org.springframework.data.repository.util.ReactiveWrapperConverters; import org.springframework.data.repository.util.ReactiveWrappers; @@ -55,7 +59,7 @@ public class R2dbcQueryMethod extends QueryMethod { private final MappingContext, JdbcPersistentProperty> mappingContext; private final Optional query; - private @Nullable JdbcEntityMetadata metadata; + private @Nullable RelationalEntityMetadata metadata; /** * Creates a new {@link R2dbcQueryMethod} from the given {@link Method}. @@ -109,8 +113,8 @@ public class R2dbcQueryMethod extends QueryMethod { * @see org.springframework.data.repository.query.QueryMethod#createParameters(java.lang.reflect.Method) */ @Override - protected JdbcParameters createParameters(Method method) { - return new JdbcParameters(method); + protected RelationalParameters createParameters(Method method) { + return new RelationalParameters(method); } /* (non-Javadoc) @@ -144,7 +148,7 @@ public class R2dbcQueryMethod extends QueryMethod { */ @Override @SuppressWarnings("unchecked") - public JdbcEntityMetadata getEntityInformation() { + public RelationalEntityMetadata getEntityInformation() { if (metadata == null) { @@ -153,7 +157,7 @@ public class R2dbcQueryMethod extends QueryMethod { if (ClassUtils.isPrimitiveOrWrapper(returnedObjectType)) { - this.metadata = new SimpleJdbcEntityMetadata<>((Class) domainClass, + this.metadata = new SimpleRelationalEntityMetadata<>((Class) domainClass, mappingContext.getRequiredPersistentEntity(domainClass)); } else { @@ -165,7 +169,7 @@ public class R2dbcQueryMethod extends QueryMethod { JdbcPersistentEntity tableEntity = domainClass.isAssignableFrom(returnedObjectType) ? returnedEntity : managedEntity; - this.metadata = new SimpleJdbcEntityMetadata<>((Class) returnedEntity.getType(), tableEntity); + this.metadata = new SimpleRelationalEntityMetadata<>((Class) returnedEntity.getType(), tableEntity); } } @@ -176,8 +180,8 @@ public class R2dbcQueryMethod extends QueryMethod { * @see org.springframework.data.repository.query.QueryMethod#getParameters() */ @Override - public JdbcParameters getParameters() { - return (JdbcParameters) super.getParameters(); + public RelationalParameters getParameters() { + return (RelationalParameters) super.getParameters(); } /** @@ -189,7 +193,7 @@ public class R2dbcQueryMethod extends QueryMethod { */ public boolean hasReactiveWrapperParameter() { - for (JdbcParameter parameter : getParameters()) { + for (Parameter parameter : getParameters()) { if (ReactiveWrapperConverters.supports(parameter.getType())) { return true; } diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/StringBasedR2dbcQuery.java b/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java similarity index 88% rename from src/main/java/org/springframework/data/jdbc/repository/query/StringBasedR2dbcQuery.java rename to src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java index 319b25f..ff388dc 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/StringBasedR2dbcQuery.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQuery.java @@ -13,11 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; -import org.springframework.data.jdbc.core.function.DatabaseClient; -import org.springframework.data.jdbc.core.function.DatabaseClient.BindSpec; -import org.springframework.data.jdbc.core.function.MappingR2dbcConverter; +import org.springframework.data.jdbc.repository.query.Query; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.r2dbc.function.DatabaseClient.BindSpec; +import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter; +import org.springframework.data.relational.repository.query.RelationalParameterAccessor; import org.springframework.data.repository.query.QueryMethodEvaluationContextProvider; import org.springframework.expression.spel.standard.SpelExpressionParser; import org.springframework.util.Assert; @@ -76,7 +78,7 @@ public class StringBasedR2dbcQuery extends AbstractR2dbcQuery { * @see org.springframework.data.jdbc.repository.query.AbstractR2dbcQuery#createQuery(org.springframework.data.jdbc.repository.query.JdbcParameterAccessor) */ @Override - protected BindableQuery createQuery(JdbcParameterAccessor accessor) { + protected BindableQuery createQuery(RelationalParameterAccessor accessor) { return new BindableQuery() { diff --git a/src/main/java/org/springframework/data/r2dbc/repository/query/package-info.java b/src/main/java/org/springframework/data/r2dbc/repository/query/package-info.java new file mode 100644 index 0000000..0ab85fa --- /dev/null +++ b/src/main/java/org/springframework/data/r2dbc/repository/query/package-info.java @@ -0,0 +1,9 @@ +/** + * Query support for R2DBC repositories. + */ +@NonNullApi +@NonNullFields +package org.springframework.data.r2dbc.repository.query; + +import org.springframework.lang.NonNullApi; +import org.springframework.lang.NonNullFields; diff --git a/src/main/java/org/springframework/data/jdbc/repository/support/R2dbcRepositoryFactory.java b/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java similarity index 85% rename from src/main/java/org/springframework/data/jdbc/repository/support/R2dbcRepositoryFactory.java rename to src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java index 6fba57a..a4482be 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/support/R2dbcRepositoryFactory.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.support; +package org.springframework.data.r2dbc.repository.support; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; @@ -21,15 +21,17 @@ import lombok.RequiredArgsConstructor; import java.lang.reflect.Method; import java.util.Optional; -import org.springframework.data.jdbc.core.function.DatabaseClient; -import org.springframework.data.jdbc.core.function.MappingR2dbcConverter; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; import org.springframework.data.jdbc.core.mapping.JdbcPersistentProperty; -import org.springframework.data.jdbc.repository.query.JdbcEntityInformation; -import org.springframework.data.jdbc.repository.query.R2dbcQueryMethod; -import org.springframework.data.jdbc.repository.query.StringBasedR2dbcQuery; import org.springframework.data.mapping.context.MappingContext; import org.springframework.data.projection.ProjectionFactory; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter; +import org.springframework.data.r2dbc.repository.R2dbcRepository; +import org.springframework.data.r2dbc.repository.query.R2dbcQueryMethod; +import org.springframework.data.r2dbc.repository.query.StringBasedR2dbcQuery; +import org.springframework.data.relational.repository.query.RelationalEntityInformation; +import org.springframework.data.relational.repository.support.MappingRelationalEntityInformation; import org.springframework.data.repository.core.NamedQueries; import org.springframework.data.repository.core.RepositoryInformation; import org.springframework.data.repository.core.RepositoryMetadata; @@ -43,7 +45,7 @@ import org.springframework.lang.Nullable; import org.springframework.util.Assert; /** - * Factory to create {@link org.springframework.data.jdbc.repository.R2dbcRepository} instances. + * Factory to create {@link R2dbcRepository} instances. * * @author Mark Paluch */ @@ -88,7 +90,8 @@ public class R2dbcRepositoryFactory extends ReactiveRepositoryFactorySupport { @Override protected Object getTargetRepository(RepositoryInformation information) { - JdbcEntityInformation entityInformation = getEntityInformation(information.getDomainType(), information); + RelationalEntityInformation entityInformation = getEntityInformation(information.getDomainType(), + information); return getTargetRepositoryViaReflection(information, entityInformation, databaseClient, converter); } @@ -107,17 +110,17 @@ public class R2dbcRepositoryFactory extends ReactiveRepositoryFactorySupport { * (non-Javadoc) * @see org.springframework.data.repository.core.support.RepositoryFactorySupport#getEntityInformation(java.lang.Class) */ - public JdbcEntityInformation getEntityInformation(Class domainClass) { + public RelationalEntityInformation getEntityInformation(Class domainClass) { return getEntityInformation(domainClass, null); } @SuppressWarnings("unchecked") - private JdbcEntityInformation getEntityInformation(Class domainClass, + private RelationalEntityInformation getEntityInformation(Class domainClass, @Nullable RepositoryInformation information) { JdbcPersistentEntity entity = mappingContext.getRequiredPersistentEntity(domainClass); - return new MappingJdbcEntityInformation<>((JdbcPersistentEntity) entity); + return new MappingRelationalEntityInformation<>((JdbcPersistentEntity) entity); } /** diff --git a/src/main/java/org/springframework/data/jdbc/repository/support/SimpleR2dbcRepository.java b/src/main/java/org/springframework/data/r2dbc/repository/support/SimpleR2dbcRepository.java similarity index 94% rename from src/main/java/org/springframework/data/jdbc/repository/support/SimpleR2dbcRepository.java rename to src/main/java/org/springframework/data/r2dbc/repository/support/SimpleR2dbcRepository.java index 66c09d8..943c43a 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/support/SimpleR2dbcRepository.java +++ b/src/main/java/org/springframework/data/r2dbc/repository/support/SimpleR2dbcRepository.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.support; +package org.springframework.data.r2dbc.repository.support; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -27,12 +27,12 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; import org.reactivestreams.Publisher; -import org.springframework.data.jdbc.core.function.DatabaseClient; -import org.springframework.data.jdbc.core.function.DatabaseClient.BindSpec; -import org.springframework.data.jdbc.core.function.DatabaseClient.GenericExecuteSpec; -import org.springframework.data.jdbc.core.function.FetchSpec; -import org.springframework.data.jdbc.core.function.MappingR2dbcConverter; -import org.springframework.data.jdbc.repository.query.JdbcEntityInformation; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.r2dbc.function.DatabaseClient.BindSpec; +import org.springframework.data.r2dbc.function.DatabaseClient.GenericExecuteSpec; +import org.springframework.data.r2dbc.function.FetchSpec; +import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter; +import org.springframework.data.relational.repository.query.RelationalEntityInformation; import org.springframework.data.repository.reactive.ReactiveCrudRepository; import org.springframework.util.Assert; @@ -44,7 +44,7 @@ import org.springframework.util.Assert; @RequiredArgsConstructor public class SimpleR2dbcRepository implements ReactiveCrudRepository { - private final @NonNull JdbcEntityInformation entity; + private final @NonNull RelationalEntityInformation entity; private final @NonNull DatabaseClient databaseClient; private final @NonNull MappingR2dbcConverter converter; diff --git a/src/main/java/org/springframework/data/r2dbc/repository/support/package-info.java b/src/main/java/org/springframework/data/r2dbc/repository/support/package-info.java new file mode 100644 index 0000000..5fc32c6 --- /dev/null +++ b/src/main/java/org/springframework/data/r2dbc/repository/support/package-info.java @@ -0,0 +1,7 @@ +/** + * Support infrastructure for query derivation of R2DBC-specific repositories. + */ +@NonNullApi +package org.springframework.data.r2dbc.repository.support; + +import org.springframework.lang.NonNullApi; diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/DtoInstantiatingConverter.java b/src/main/java/org/springframework/data/relational/repository/query/DtoInstantiatingConverter.java similarity index 96% rename from src/main/java/org/springframework/data/jdbc/repository/query/DtoInstantiatingConverter.java rename to src/main/java/org/springframework/data/relational/repository/query/DtoInstantiatingConverter.java index ceedda0..0d8f1eb 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/DtoInstantiatingConverter.java +++ b/src/main/java/org/springframework/data/relational/repository/query/DtoInstantiatingConverter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.relational.repository.query; import org.springframework.core.convert.converter.Converter; import org.springframework.data.convert.EntityInstantiator; @@ -35,7 +35,7 @@ import org.springframework.util.Assert; * * @author Mark Paluch */ -class DtoInstantiatingConverter implements Converter { +public class DtoInstantiatingConverter implements Converter { private final Class targetType; private final MappingContext, ? extends PersistentProperty> context; diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcEntityInformation.java b/src/main/java/org/springframework/data/relational/repository/query/RelationalEntityInformation.java similarity index 85% rename from src/main/java/org/springframework/data/jdbc/repository/query/JdbcEntityInformation.java rename to src/main/java/org/springframework/data/relational/repository/query/RelationalEntityInformation.java index 6ce86da..c331c0a 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcEntityInformation.java +++ b/src/main/java/org/springframework/data/relational/repository/query/RelationalEntityInformation.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.relational.repository.query; import org.springframework.data.repository.core.EntityInformation; @@ -22,7 +22,7 @@ import org.springframework.data.repository.core.EntityInformation; * * @author Mark Paluch */ -public interface JdbcEntityInformation extends EntityInformation { +public interface RelationalEntityInformation extends EntityInformation { /** * Returns the name of the table the entity shall be persisted to. diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcEntityMetadata.java b/src/main/java/org/springframework/data/relational/repository/query/RelationalEntityMetadata.java similarity index 89% rename from src/main/java/org/springframework/data/jdbc/repository/query/JdbcEntityMetadata.java rename to src/main/java/org/springframework/data/relational/repository/query/RelationalEntityMetadata.java index 278cc00..92fff24 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcEntityMetadata.java +++ b/src/main/java/org/springframework/data/relational/repository/query/RelationalEntityMetadata.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.relational.repository.query; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; import org.springframework.data.repository.core.EntityMetadata; @@ -23,7 +23,7 @@ import org.springframework.data.repository.core.EntityMetadata; * * @author Mark Paluch */ -public interface JdbcEntityMetadata extends EntityMetadata { +public interface RelationalEntityMetadata extends EntityMetadata { /** * Returns the name of the table the entity shall be persisted to. diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcParameterAccessor.java b/src/main/java/org/springframework/data/relational/repository/query/RelationalParameterAccessor.java similarity index 86% rename from src/main/java/org/springframework/data/jdbc/repository/query/JdbcParameterAccessor.java rename to src/main/java/org/springframework/data/relational/repository/query/RelationalParameterAccessor.java index b7c57f1..50f8aae 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcParameterAccessor.java +++ b/src/main/java/org/springframework/data/relational/repository/query/RelationalParameterAccessor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.relational.repository.query; import org.springframework.data.repository.query.ParameterAccessor; @@ -22,7 +22,7 @@ import org.springframework.data.repository.query.ParameterAccessor; * * @author Mark Paluch */ -public interface JdbcParameterAccessor extends ParameterAccessor { +public interface RelationalParameterAccessor extends ParameterAccessor { /** * Returns the raw parameter values of the underlying query method. diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcParameters.java b/src/main/java/org/springframework/data/relational/repository/query/RelationalParameters.java similarity index 63% rename from src/main/java/org/springframework/data/jdbc/repository/query/JdbcParameters.java rename to src/main/java/org/springframework/data/relational/repository/query/RelationalParameters.java index d199225..8af173e 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcParameters.java +++ b/src/main/java/org/springframework/data/relational/repository/query/RelationalParameters.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.relational.repository.query; import java.lang.reflect.Method; import java.util.List; import org.springframework.core.MethodParameter; -import org.springframework.data.jdbc.repository.query.JdbcParameters.JdbcParameter; +import org.springframework.data.relational.repository.query.RelationalParameters.RelationalParameter; import org.springframework.data.repository.query.Parameter; import org.springframework.data.repository.query.Parameters; @@ -28,18 +28,18 @@ import org.springframework.data.repository.query.Parameters; * * @author Mark Paluch */ -public class JdbcParameters extends Parameters { +public class RelationalParameters extends Parameters { /** - * Creates a new {@link JdbcParameters} instance from the given {@link Method}. + * Creates a new {@link RelationalParameters} instance from the given {@link Method}. * * @param method must not be {@literal null}. */ - public JdbcParameters(Method method) { + public RelationalParameters(Method method) { super(method); } - private JdbcParameters(List parameters) { + private RelationalParameters(List parameters) { super(parameters); } @@ -48,8 +48,8 @@ public class JdbcParameters extends Parameters { * @see org.springframework.data.repository.query.Parameters#createParameter(org.springframework.core.MethodParameter) */ @Override - protected JdbcParameter createParameter(MethodParameter parameter) { - return new JdbcParameter(parameter); + protected RelationalParameter createParameter(MethodParameter parameter) { + return new RelationalParameter(parameter); } /* @@ -57,8 +57,8 @@ public class JdbcParameters extends Parameters { * @see org.springframework.data.repository.query.Parameters#createFrom(java.util.List) */ @Override - protected JdbcParameters createFrom(List parameters) { - return new JdbcParameters(parameters); + protected RelationalParameters createFrom(List parameters) { + return new RelationalParameters(parameters); } /** @@ -66,14 +66,14 @@ public class JdbcParameters extends Parameters { * * @author Mark Paluch */ - class JdbcParameter extends Parameter { + public static class RelationalParameter extends Parameter { /** - * Creates a new {@link JdbcParameter}. + * Creates a new {@link RelationalParameter}. * * @param parameter must not be {@literal null}. */ - JdbcParameter(MethodParameter parameter) { + RelationalParameter(MethodParameter parameter) { super(parameter); } } diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcParametersParameterAccessor.java b/src/main/java/org/springframework/data/relational/repository/query/RelationalParametersParameterAccessor.java similarity index 79% rename from src/main/java/org/springframework/data/jdbc/repository/query/JdbcParametersParameterAccessor.java rename to src/main/java/org/springframework/data/relational/repository/query/RelationalParametersParameterAccessor.java index 52c8c58..62bfc09 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/JdbcParametersParameterAccessor.java +++ b/src/main/java/org/springframework/data/relational/repository/query/RelationalParametersParameterAccessor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.relational.repository.query; import java.util.Arrays; import java.util.List; @@ -26,17 +26,18 @@ import org.springframework.data.repository.query.QueryMethod; * * @author Mark Paluch */ -public class JdbcParametersParameterAccessor extends ParametersParameterAccessor implements JdbcParameterAccessor { +public class RelationalParametersParameterAccessor extends ParametersParameterAccessor + implements RelationalParameterAccessor { private final List values; /** - * Creates a new {@link JdbcParametersParameterAccessor}. + * Creates a new {@link RelationalParametersParameterAccessor}. * * @param method must not be {@literal null}. * @param values must not be {@literal null}. */ - public JdbcParametersParameterAccessor(QueryMethod method, Object[] values) { + public RelationalParametersParameterAccessor(QueryMethod method, Object[] values) { super(method.getParameters(), values); this.values = Arrays.asList(values); diff --git a/src/main/java/org/springframework/data/jdbc/repository/query/SimpleJdbcEntityMetadata.java b/src/main/java/org/springframework/data/relational/repository/query/SimpleRelationalEntityMetadata.java similarity index 77% rename from src/main/java/org/springframework/data/jdbc/repository/query/SimpleJdbcEntityMetadata.java rename to src/main/java/org/springframework/data/relational/repository/query/SimpleRelationalEntityMetadata.java index ea4dc5e..9e65091 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/query/SimpleJdbcEntityMetadata.java +++ b/src/main/java/org/springframework/data/relational/repository/query/SimpleRelationalEntityMetadata.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.relational.repository.query; import lombok.Getter; @@ -21,23 +21,23 @@ import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; import org.springframework.util.Assert; /** - * Default implementation of {@link JdbcEntityMetadata}. + * Default implementation of {@link RelationalEntityMetadata}. * * @author Mark Paluch */ -class SimpleJdbcEntityMetadata implements JdbcEntityMetadata { +public class SimpleRelationalEntityMetadata implements RelationalEntityMetadata { private final Class type; private final @Getter JdbcPersistentEntity tableEntity; /** - * Creates a new {@link SimpleJdbcEntityMetadata} using the given type and {@link JdbcPersistentEntity} to use for - * table lookups. + * Creates a new {@link SimpleRelationalEntityMetadata} using the given type and {@link JdbcPersistentEntity} to use + * for table lookups. * * @param type must not be {@literal null}. * @param tableEntity must not be {@literal null}. */ - SimpleJdbcEntityMetadata(Class type, JdbcPersistentEntity tableEntity) { + public SimpleRelationalEntityMetadata(Class type, JdbcPersistentEntity tableEntity) { Assert.notNull(type, "Type must not be null!"); Assert.notNull(tableEntity, "Table entity must not be null!"); diff --git a/src/main/java/org/springframework/data/relational/repository/query/package-info.java b/src/main/java/org/springframework/data/relational/repository/query/package-info.java new file mode 100644 index 0000000..ccd616a --- /dev/null +++ b/src/main/java/org/springframework/data/relational/repository/query/package-info.java @@ -0,0 +1,7 @@ +/** + * Query support for relational database repositories. + */ +@NonNullApi +package org.springframework.data.relational.repository.query; + +import org.springframework.lang.NonNullApi; diff --git a/src/main/java/org/springframework/data/jdbc/repository/support/MappingJdbcEntityInformation.java b/src/main/java/org/springframework/data/relational/repository/support/MappingRelationalEntityInformation.java similarity index 64% rename from src/main/java/org/springframework/data/jdbc/repository/support/MappingJdbcEntityInformation.java rename to src/main/java/org/springframework/data/relational/repository/support/MappingRelationalEntityInformation.java index b590ad7..6e77a52 100644 --- a/src/main/java/org/springframework/data/jdbc/repository/support/MappingJdbcEntityInformation.java +++ b/src/main/java/org/springframework/data/relational/repository/support/MappingRelationalEntityInformation.java @@ -13,69 +13,69 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.support; +package org.springframework.data.relational.repository.support; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; -import org.springframework.data.jdbc.repository.query.JdbcEntityInformation; +import org.springframework.data.relational.repository.query.RelationalEntityInformation; import org.springframework.data.repository.core.support.PersistentEntityInformation; import org.springframework.lang.Nullable; import com.sun.corba.se.spi.ior.ObjectId; /** - * {@link JdbcEntityInformation} implementation using a {@link JdbcPersistentEntity} instance to lookup the necessary - * information. Can be configured with a custom table name. + * {@link RelationalEntityInformation} implementation using a {@link JdbcPersistentEntity} instance to lookup the + * necessary information. Can be configured with a custom table name. * * @author Mark Paluch */ -public class MappingJdbcEntityInformation extends PersistentEntityInformation - implements JdbcEntityInformation { +public class MappingRelationalEntityInformation extends PersistentEntityInformation + implements RelationalEntityInformation { private final JdbcPersistentEntity entityMetadata; private final @Nullable String customTableName; private final Class fallbackIdType; /** - * Creates a new {@link MappingJdbcEntityInformation} for the given {@link JdbcPersistentEntity}. + * Creates a new {@link MappingRelationalEntityInformation} for the given {@link JdbcPersistentEntity}. * * @param entity must not be {@literal null}. */ - public MappingJdbcEntityInformation(JdbcPersistentEntity entity) { + public MappingRelationalEntityInformation(JdbcPersistentEntity entity) { this(entity, null, null); } /** - * Creates a new {@link MappingJdbcEntityInformation} for the given {@link JdbcPersistentEntity} and fallback + * Creates a new {@link MappingRelationalEntityInformation} for the given {@link JdbcPersistentEntity} and fallback * identifier type. * * @param entity must not be {@literal null}. * @param fallbackIdType can be {@literal null}. */ - public MappingJdbcEntityInformation(JdbcPersistentEntity entity, @Nullable Class fallbackIdType) { + public MappingRelationalEntityInformation(JdbcPersistentEntity entity, @Nullable Class fallbackIdType) { this(entity, null, fallbackIdType); } /** - * Creates a new {@link MappingJdbcEntityInformation} for the given {@link JdbcPersistentEntity} and custom table - * name. + * Creates a new {@link MappingRelationalEntityInformation} for the given {@link JdbcPersistentEntity} and custom + * table name. * * @param entity must not be {@literal null}. * @param customTableName can be {@literal null}. */ - public MappingJdbcEntityInformation(JdbcPersistentEntity entity, String customTableName) { + public MappingRelationalEntityInformation(JdbcPersistentEntity entity, String customTableName) { this(entity, customTableName, null); } /** - * Creates a new {@link MappingJdbcEntityInformation} for the given {@link JdbcPersistentEntity}, collection name and - * identifier type. + * Creates a new {@link MappingRelationalEntityInformation} for the given {@link JdbcPersistentEntity}, collection + * name and identifier type. * * @param entity must not be {@literal null}. * @param customTableName can be {@literal null}. * @param idType can be {@literal null}. */ @SuppressWarnings("unchecked") - private MappingJdbcEntityInformation(JdbcPersistentEntity entity, @Nullable String customTableName, + private MappingRelationalEntityInformation(JdbcPersistentEntity entity, @Nullable String customTableName, @Nullable Class idType) { super(entity); diff --git a/src/main/java/org/springframework/data/relational/repository/support/package-info.java b/src/main/java/org/springframework/data/relational/repository/support/package-info.java new file mode 100644 index 0000000..28aeb25 --- /dev/null +++ b/src/main/java/org/springframework/data/relational/repository/support/package-info.java @@ -0,0 +1,7 @@ +/** + * Support infrastructure for query derivation of relational database repositories. + */ +@NonNullApi +package org.springframework.data.relational.repository.support; + +import org.springframework.lang.NonNullApi; diff --git a/src/test/java/org/springframework/data/jdbc/core/function/DatabaseClientIntegrationTests.java b/src/test/java/org/springframework/data/r2dbc/function/DatabaseClientIntegrationTests.java similarity index 99% rename from src/test/java/org/springframework/data/jdbc/core/function/DatabaseClientIntegrationTests.java rename to src/test/java/org/springframework/data/r2dbc/function/DatabaseClientIntegrationTests.java index bcd0c49..3f06dfd 100644 --- a/src/test/java/org/springframework/data/jdbc/core/function/DatabaseClientIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/function/DatabaseClientIntegrationTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.core.function; +package org.springframework.data.r2dbc.function; import static org.assertj.core.api.Assertions.*; import static org.springframework.data.domain.Sort.Order.*; diff --git a/src/test/java/org/springframework/data/jdbc/repository/R2dbcRepositoryIntegrationTests.java b/src/test/java/org/springframework/data/r2dbc/repository/R2dbcRepositoryIntegrationTests.java similarity index 94% rename from src/test/java/org/springframework/data/jdbc/repository/R2dbcRepositoryIntegrationTests.java rename to src/test/java/org/springframework/data/r2dbc/repository/R2dbcRepositoryIntegrationTests.java index 34b2ff7..d18fdc5 100644 --- a/src/test/java/org/springframework/data/jdbc/repository/R2dbcRepositoryIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/R2dbcRepositoryIntegrationTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository; +package org.springframework.data.r2dbc.repository; import static org.assertj.core.api.Assertions.*; @@ -32,13 +32,13 @@ import org.junit.Before; import org.junit.Test; import org.springframework.data.annotation.Id; import org.springframework.data.convert.EntityInstantiators; -import org.springframework.data.jdbc.core.function.DatabaseClient; -import org.springframework.data.jdbc.core.function.DefaultReactiveDataAccessStrategy; import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; import org.springframework.data.jdbc.core.mapping.Table; import org.springframework.data.jdbc.repository.query.Query; -import org.springframework.data.jdbc.repository.support.R2dbcRepositoryFactory; import org.springframework.data.jdbc.testing.R2dbcIntegrationTestSupport; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.r2dbc.function.DefaultReactiveDataAccessStrategy; +import org.springframework.data.r2dbc.repository.support.R2dbcRepositoryFactory; import org.springframework.data.repository.reactive.ReactiveCrudRepository; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/test/java/org/springframework/data/jdbc/repository/query/R2dbcQueryMethodUnitTests.java b/src/test/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethodUnitTests.java similarity index 93% rename from src/test/java/org/springframework/data/jdbc/repository/query/R2dbcQueryMethodUnitTests.java rename to src/test/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethodUnitTests.java index 487cf7f..1dcb41c 100644 --- a/src/test/java/org/springframework/data/jdbc/repository/query/R2dbcQueryMethodUnitTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethodUnitTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; import static org.assertj.core.api.Assertions.*; @@ -31,6 +31,7 @@ import org.springframework.data.domain.Slice; import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.projection.SpelAwareProxyProjectionFactory; +import org.springframework.data.relational.repository.query.RelationalEntityMetadata; import org.springframework.data.repository.Repository; import org.springframework.data.repository.core.support.DefaultRepositoryMetadata; @@ -52,7 +53,7 @@ public class R2dbcQueryMethodUnitTests { public void detectsCollectionFromReturnTypeIfReturnTypeAssignable() throws Exception { R2dbcQueryMethod queryMethod = queryMethod(SampleRepository.class, "method"); - JdbcEntityMetadata metadata = queryMethod.getEntityInformation(); + RelationalEntityMetadata metadata = queryMethod.getEntityInformation(); assertThat(metadata.getJavaType()).isAssignableFrom(Contact.class); assertThat(metadata.getTableName()).isEqualTo("contact"); @@ -62,7 +63,7 @@ public class R2dbcQueryMethodUnitTests { public void detectsTableNameFromRepoTypeIfReturnTypeNotAssignable() throws Exception { R2dbcQueryMethod queryMethod = queryMethod(SampleRepository.class, "differentTable"); - JdbcEntityMetadata metadata = queryMethod.getEntityInformation(); + RelationalEntityMetadata metadata = queryMethod.getEntityInformation(); assertThat(metadata.getJavaType()).isAssignableFrom(Address.class); assertThat(metadata.getTableName()).isEqualTo("contact"); diff --git a/src/test/java/org/springframework/data/jdbc/repository/query/StringBasedR2dbcQueryUnitTests.java b/src/test/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQueryUnitTests.java similarity index 91% rename from src/test/java/org/springframework/data/jdbc/repository/query/StringBasedR2dbcQueryUnitTests.java rename to src/test/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQueryUnitTests.java index a32de2a..9ddbbe1 100644 --- a/src/test/java/org/springframework/data/jdbc/repository/query/StringBasedR2dbcQueryUnitTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQueryUnitTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.query; +package org.springframework.data.r2dbc.repository.query; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; @@ -25,12 +25,13 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.data.jdbc.core.function.DatabaseClient; -import org.springframework.data.jdbc.core.function.DatabaseClient.GenericExecuteSpec; -import org.springframework.data.jdbc.core.function.MappingR2dbcConverter; import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; +import org.springframework.data.jdbc.repository.query.Query; import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.projection.SpelAwareProxyProjectionFactory; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.r2dbc.function.DatabaseClient.GenericExecuteSpec; +import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter; import org.springframework.data.repository.Repository; import org.springframework.data.repository.core.RepositoryMetadata; import org.springframework.data.repository.core.support.AbstractRepositoryMetadata; diff --git a/src/test/java/org/springframework/data/jdbc/repository/support/R2dbcRepositoryFactoryUnitTests.java b/src/test/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactoryUnitTests.java similarity index 80% rename from src/test/java/org/springframework/data/jdbc/repository/support/R2dbcRepositoryFactoryUnitTests.java rename to src/test/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactoryUnitTests.java index d040daa..5448c97 100644 --- a/src/test/java/org/springframework/data/jdbc/repository/support/R2dbcRepositoryFactoryUnitTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/support/R2dbcRepositoryFactoryUnitTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.support; +package org.springframework.data.r2dbc.repository.support; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; @@ -23,10 +23,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.data.jdbc.core.function.DatabaseClient; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; -import org.springframework.data.jdbc.repository.query.JdbcEntityInformation; import org.springframework.data.mapping.context.MappingContext; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.relational.repository.query.RelationalEntityInformation; +import org.springframework.data.relational.repository.support.MappingRelationalEntityInformation; import org.springframework.data.repository.Repository; /** @@ -52,9 +53,9 @@ public class R2dbcRepositoryFactoryUnitTests { public void usesMappingJdbcEntityInformationIfMappingContextSet() { R2dbcRepositoryFactory factory = new R2dbcRepositoryFactory(databaseClient, mappingContext); - JdbcEntityInformation entityInformation = factory.getEntityInformation(Person.class); + RelationalEntityInformation entityInformation = factory.getEntityInformation(Person.class); - assertThat(entityInformation).isInstanceOf(MappingJdbcEntityInformation.class); + assertThat(entityInformation).isInstanceOf(MappingRelationalEntityInformation.class); } @Test diff --git a/src/test/java/org/springframework/data/jdbc/repository/support/SimpleR2dbcRepositoryIntegrationTests.java b/src/test/java/org/springframework/data/r2dbc/repository/support/SimpleR2dbcRepositoryIntegrationTests.java similarity index 94% rename from src/test/java/org/springframework/data/jdbc/repository/support/SimpleR2dbcRepositoryIntegrationTests.java rename to src/test/java/org/springframework/data/r2dbc/repository/support/SimpleR2dbcRepositoryIntegrationTests.java index 7e358ac..6a42ce2 100644 --- a/src/test/java/org/springframework/data/jdbc/repository/support/SimpleR2dbcRepositoryIntegrationTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/support/SimpleR2dbcRepositoryIntegrationTests.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.data.jdbc.repository.support; +package org.springframework.data.r2dbc.repository.support; import static org.assertj.core.api.Assertions.*; @@ -34,14 +34,15 @@ import org.junit.Before; import org.junit.Test; import org.springframework.data.annotation.Id; import org.springframework.data.convert.EntityInstantiators; -import org.springframework.data.jdbc.core.function.DatabaseClient; -import org.springframework.data.jdbc.core.function.DefaultReactiveDataAccessStrategy; -import org.springframework.data.jdbc.core.function.MappingR2dbcConverter; import org.springframework.data.jdbc.core.mapping.JdbcMappingContext; import org.springframework.data.jdbc.core.mapping.JdbcPersistentEntity; import org.springframework.data.jdbc.core.mapping.Table; -import org.springframework.data.jdbc.repository.query.JdbcEntityInformation; import org.springframework.data.jdbc.testing.R2dbcIntegrationTestSupport; +import org.springframework.data.r2dbc.function.DatabaseClient; +import org.springframework.data.r2dbc.function.DefaultReactiveDataAccessStrategy; +import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter; +import org.springframework.data.relational.repository.query.RelationalEntityInformation; +import org.springframework.data.relational.repository.support.MappingRelationalEntityInformation; import org.springframework.jdbc.core.JdbcTemplate; /** @@ -67,7 +68,7 @@ public class SimpleR2dbcRepositoryIntegrationTests extends R2dbcIntegrationTestS this.databaseClient = DatabaseClient.builder().connectionFactory(connectionFactory) .dataAccessStrategy(new DefaultReactiveDataAccessStrategy(mappingContext, new EntityInstantiators())).build(); - JdbcEntityInformation entityInformation = new MappingJdbcEntityInformation<>( + RelationalEntityInformation entityInformation = new MappingRelationalEntityInformation<>( (JdbcPersistentEntity) mappingContext.getRequiredPersistentEntity(LegoSet.class)); this.repository = new SimpleR2dbcRepository<>(entityInformation, databaseClient,