#100 - Remove Spring JDBC as mandatory dependency.
We now ship our own SqlProvider variant to not require Spring JDBC as mandatory dependency. Spring JDBC can be provided optionally to use SQL-code based exception translation.
This commit is contained in:
@@ -18,7 +18,6 @@ package org.springframework.data.r2dbc;
|
|||||||
import io.r2dbc.spi.R2dbcException;
|
import io.r2dbc.spi.R2dbcException;
|
||||||
|
|
||||||
import org.springframework.dao.InvalidDataAccessResourceUsageException;
|
import org.springframework.dao.InvalidDataAccessResourceUsageException;
|
||||||
import org.springframework.jdbc.BadSqlGrammarException;
|
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -57,7 +57,6 @@ import org.springframework.data.r2dbc.domain.SettableValue;
|
|||||||
import org.springframework.data.r2dbc.function.connectionfactory.ConnectionProxy;
|
import org.springframework.data.r2dbc.function.connectionfactory.ConnectionProxy;
|
||||||
import org.springframework.data.r2dbc.function.convert.ColumnMapRowMapper;
|
import org.springframework.data.r2dbc.function.convert.ColumnMapRowMapper;
|
||||||
import org.springframework.data.r2dbc.support.R2dbcExceptionTranslator;
|
import org.springframework.data.r2dbc.support.R2dbcExceptionTranslator;
|
||||||
import org.springframework.jdbc.core.SqlProvider;
|
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class DefaultFetchSpec<T> implements FetchSpec<T> {
|
|||||||
private final Function<Connection, Mono<Integer>> updatedRowsFunction;
|
private final Function<Connection, Mono<Integer>> updatedRowsFunction;
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#one()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#one()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<T> one() {
|
public Mono<T> one() {
|
||||||
@@ -60,7 +60,7 @@ class DefaultFetchSpec<T> implements FetchSpec<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#first()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#first()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<T> first() {
|
public Mono<T> first() {
|
||||||
@@ -68,7 +68,7 @@ class DefaultFetchSpec<T> implements FetchSpec<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#all()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#all()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Flux<T> all() {
|
public Flux<T> all() {
|
||||||
@@ -76,7 +76,7 @@ class DefaultFetchSpec<T> implements FetchSpec<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#rowsUpdated()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#rowsUpdated()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<Integer> rowsUpdated() {
|
public Mono<Integer> rowsUpdated() {
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import reactor.core.publisher.Mono;
|
|||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import org.springframework.jdbc.core.SqlProvider;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default {@link SqlResult} implementation.
|
* Default {@link SqlResult} implementation.
|
||||||
@@ -110,7 +109,7 @@ class DefaultSqlResult<T> implements SqlResult<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.SqlResult#map(java.util.function.BiFunction)
|
* @see org.springframework.data.r2dbc.function.SqlResult#map(java.util.function.BiFunction)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public <R> SqlResult<R> map(BiFunction<Row, RowMetadata, R> mappingFunction) {
|
public <R> SqlResult<R> map(BiFunction<Row, RowMetadata, R> mappingFunction) {
|
||||||
@@ -118,7 +117,7 @@ class DefaultSqlResult<T> implements SqlResult<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#one()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#one()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<T> one() {
|
public Mono<T> one() {
|
||||||
@@ -126,7 +125,7 @@ class DefaultSqlResult<T> implements SqlResult<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#first()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#first()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<T> first() {
|
public Mono<T> first() {
|
||||||
@@ -134,7 +133,7 @@ class DefaultSqlResult<T> implements SqlResult<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#all()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#all()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Flux<T> all() {
|
public Flux<T> all() {
|
||||||
@@ -142,7 +141,7 @@ class DefaultSqlResult<T> implements SqlResult<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.core.function.FetchSpec#rowsUpdated()
|
* @see org.springframework.data.r2dbc.function.FetchSpec#rowsUpdated()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Mono<Integer> rowsUpdated() {
|
public Mono<Integer> rowsUpdated() {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import org.springframework.util.Assert;
|
|||||||
* Only intended for internal use within Spring's Data's R2DBC framework. Partially extracted from Spring's JDBC named
|
* Only intended for internal use within Spring's Data's R2DBC framework. Partially extracted from Spring's JDBC named
|
||||||
* parameter support.
|
* parameter support.
|
||||||
* <p>
|
* <p>
|
||||||
* This is a subset of Spring Frameworks's {@code org.springframework.jdbc.core.namedparam.NamedParameterUtils}.
|
* This is a subset of Spring Frameworks's {@code org.springframework.r2dbc.namedparam.NamedParameterUtils}.
|
||||||
*
|
*
|
||||||
* @author Thomas Risberg
|
* @author Thomas Risberg
|
||||||
* @author Juergen Hoeller
|
* @author Juergen Hoeller
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import java.util.List;
|
|||||||
/**
|
/**
|
||||||
* Holds information about a parsed SQL statement.
|
* Holds information about a parsed SQL statement.
|
||||||
* <p>
|
* <p>
|
||||||
* This is a copy of Spring Frameworks's {@code org.springframework.jdbc.core.namedparam.ParsedSql}.
|
* This is a copy of Spring Frameworks's {@code org.springframework.r2dbc.namedparam.ParsedSql}.
|
||||||
*
|
*
|
||||||
* @author Thomas Risberg
|
* @author Thomas Risberg
|
||||||
* @author Juergen Hoeller
|
* @author Juergen Hoeller
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019 the original author or authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.springframework.data.r2dbc.function;
|
||||||
|
|
||||||
|
import org.springframework.lang.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface to be implemented by objects that can provide SQL strings.
|
||||||
|
* <p>
|
||||||
|
* Typically implemented by objects that want to expose the SQL they use to create their statements, to allow for better
|
||||||
|
* contextual information in case of exceptions.
|
||||||
|
*
|
||||||
|
* @author Juergen Hoeller
|
||||||
|
* @author Mark Paluch
|
||||||
|
*/
|
||||||
|
public interface SqlProvider {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the SQL string for this object, i.e. typically the SQL used for creating statements.
|
||||||
|
*
|
||||||
|
* @return the SQL string, or {@code null}.
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
String getSql();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -79,7 +79,7 @@ class R2dbcParameterAccessor extends RelationalParametersParameterAccessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.repository.query.JdbcParametersParameterAccessor#getValues()
|
* @see org.springframework.data.relational.repository.query.RelationalParametersParameterAccessor#getValues()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Object[] getValues() {
|
public Object[] getValues() {
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ interface R2dbcQueryExecution {
|
|||||||
private final @NonNull Converter<Object, Object> converter;
|
private final @NonNull Converter<Object, Object> converter;
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.repository.query.R2dbcQueryExecution#execute(org.springframework.data.jdbc.core.function.FetchSpec, java.lang.Class, java.lang.String)
|
* @see org.springframework.data.r2dbc.repository.query.R2dbcQueryExecution#execute(org.springframework.data.r2dbc.function.FetchSpec, java.lang.Class, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Object execute(FetchSpec<?> query, Class<?> type, String tableName) {
|
public Object execute(FetchSpec<?> query, Class<?> type, String tableName) {
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ public class StringBasedR2dbcQuery extends AbstractR2dbcQuery {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.springframework.data.jdbc.repository.query.AbstractR2dbcQuery#createQuery(org.springframework.data.jdbc.repository.query.JdbcParameterAccessor)
|
* @see org.springframework.data.r2dbc.repository.query.AbstractR2dbcQuery#createQuery(org.springframework.data.relational.repository.query.RelationalParameterAccessor)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected BindableQuery createQuery(RelationalParameterAccessor accessor) {
|
protected BindableQuery createQuery(RelationalParameterAccessor accessor) {
|
||||||
|
|||||||
Reference in New Issue
Block a user