Browse Source

Adopt `RelationalParameters` and `RelationalParameter` to reflect the actual parameter type when using generics.

Closes #1691
pull/1713/head
Mark Paluch 2 years ago
parent
commit
cc43be8d02
No known key found for this signature in database
GPG Key ID: 55BC6374BAA9D973
  1. 6
      spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/JdbcQueryMethod.java
  2. 10
      spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java
  3. 20
      spring-data-relational/src/main/java/org/springframework/data/relational/repository/query/RelationalParameters.java

6
spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/JdbcQueryMethod.java

@ -32,6 +32,8 @@ import org.springframework.data.relational.repository.query.RelationalParameters @@ -32,6 +32,8 @@ import org.springframework.data.relational.repository.query.RelationalParameters
import org.springframework.data.relational.repository.query.SimpleRelationalEntityMetadata;
import org.springframework.data.repository.core.NamedQueries;
import org.springframework.data.repository.core.RepositoryMetadata;
import org.springframework.data.repository.query.Parameters;
import org.springframework.data.repository.query.ParametersSource;
import org.springframework.data.repository.query.QueryMethod;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.core.RowMapper;
@ -71,8 +73,8 @@ public class JdbcQueryMethod extends QueryMethod { @@ -71,8 +73,8 @@ public class JdbcQueryMethod extends QueryMethod {
}
@Override
protected RelationalParameters createParameters(Method method) {
return new RelationalParameters(method);
protected Parameters<?, ?> createParameters(ParametersSource parametersSource) {
return new RelationalParameters(parametersSource);
}
@Override

10
spring-data-r2dbc/src/main/java/org/springframework/data/r2dbc/repository/query/R2dbcQueryMethod.java

@ -38,10 +38,11 @@ import org.springframework.data.relational.repository.query.RelationalParameters @@ -38,10 +38,11 @@ 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.ParametersSource;
import org.springframework.data.repository.query.QueryMethod;
import org.springframework.data.repository.util.ReactiveWrapperConverters;
import org.springframework.data.util.ReactiveWrappers;
import org.springframework.data.util.Lazy;
import org.springframework.data.util.ReactiveWrappers;
import org.springframework.data.util.ReflectionUtils;
import org.springframework.data.util.TypeInformation;
import org.springframework.lang.Nullable;
@ -122,12 +123,9 @@ public class R2dbcQueryMethod extends QueryMethod { @@ -122,12 +123,9 @@ public class R2dbcQueryMethod extends QueryMethod {
this.lock = Optional.ofNullable(AnnotatedElementUtils.findMergedAnnotation(method, Lock.class));
}
/* (non-Javadoc)
* @see org.springframework.data.repository.query.QueryMethod#createParameters(java.lang.reflect.Method)
*/
@Override
protected RelationalParameters createParameters(Method method) {
return new RelationalParameters(method);
protected RelationalParameters createParameters(ParametersSource parametersSource) {
return new RelationalParameters(parametersSource);
}
/* (non-Javadoc)

20
spring-data-relational/src/main/java/org/springframework/data/relational/repository/query/RelationalParameters.java

@ -15,7 +15,6 @@ @@ -15,7 +15,6 @@
*/
package org.springframework.data.relational.repository.query;
import java.lang.reflect.Method;
import java.util.List;
import org.springframework.core.MethodParameter;
@ -23,6 +22,7 @@ import org.springframework.core.ResolvableType; @@ -23,6 +22,7 @@ import org.springframework.core.ResolvableType;
import org.springframework.data.relational.repository.query.RelationalParameters.RelationalParameter;
import org.springframework.data.repository.query.Parameter;
import org.springframework.data.repository.query.Parameters;
import org.springframework.data.repository.query.ParametersSource;
import org.springframework.data.util.TypeInformation;
/**
@ -33,23 +33,19 @@ import org.springframework.data.util.TypeInformation; @@ -33,23 +33,19 @@ import org.springframework.data.util.TypeInformation;
public class RelationalParameters extends Parameters<RelationalParameters, RelationalParameter> {
/**
* Creates a new {@link RelationalParameters} instance from the given {@link Method}.
* Creates a new {@link RelationalParameters} instance from the given {@link ParametersSource}.
*
* @param method must not be {@literal null}.
* @param parametersSource must not be {@literal null}.
*/
public RelationalParameters(Method method) {
super(method);
public RelationalParameters(ParametersSource parametersSource) {
super(parametersSource,
methodParameter -> new RelationalParameter(methodParameter, parametersSource.getDomainTypeInformation()));
}
private RelationalParameters(List<RelationalParameter> parameters) {
super(parameters);
}
@Override
protected RelationalParameter createParameter(MethodParameter parameter) {
return new RelationalParameter(parameter);
}
@Override
protected RelationalParameters createFrom(List<RelationalParameter> parameters) {
return new RelationalParameters(parameters);
@ -70,8 +66,8 @@ public class RelationalParameters extends Parameters<RelationalParameters, Relat @@ -70,8 +66,8 @@ public class RelationalParameters extends Parameters<RelationalParameters, Relat
*
* @param parameter must not be {@literal null}.
*/
RelationalParameter(MethodParameter parameter) {
super(parameter);
RelationalParameter(MethodParameter parameter, TypeInformation<?> domainType) {
super(parameter, domainType);
this.parameter = parameter;
}

Loading…
Cancel
Save