Polishing.
Renamed to unwrapDate to align with the changes from #2861. Minor JavaDoc adjustments See #2857 Original pull request #2859
This commit is contained in:
@@ -27,6 +27,7 @@ import org.springframework.data.repository.query.Parameter;
|
||||
import org.springframework.data.repository.query.Parameters;
|
||||
import org.springframework.data.repository.query.ParametersParameterAccessor;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
* {@link org.springframework.data.repository.query.ParameterAccessor} based on an {@link Parameters} instance. In
|
||||
@@ -86,14 +87,18 @@ class HibernateJpaParametersParameterAccessor extends JpaParametersParameterAcce
|
||||
* For Hibernate, check if the incoming value is wrapped inside a {@link TypedParameterValue} before extracting and
|
||||
* casting the {@link Date}.
|
||||
*
|
||||
* @param extractedValue
|
||||
* @since 3.1
|
||||
* @param value a value that is either a {@link Date} or a {@link TypedParameterValue} containing a {@literal Date}.
|
||||
* @since 3.0.4
|
||||
*/
|
||||
@Override
|
||||
public Date extractDate(Object extractedValue) {
|
||||
public Date unwrapDate(Object value) {
|
||||
|
||||
return (extractedValue instanceof TypedParameterValue<?> typedParameterValue)
|
||||
? (Date) typedParameterValue.getValue()
|
||||
: (Date) extractedValue;
|
||||
Object extracted = (value instanceof TypedParameterValue<?> typedParameterValue) //
|
||||
? typedParameterValue.getValue() //
|
||||
: value;
|
||||
|
||||
Assert.isInstanceOf(Date.class, extracted, "Value must be either of type Date or a Date wrapped in a TypedParameterValue");
|
||||
|
||||
return (Date) extracted;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class JpaParametersParameterAccessor extends ParametersParameterAccessor
|
||||
* @param extractedValue
|
||||
* @since 3.1
|
||||
*/
|
||||
public Date extractDate(Object extractedValue) {
|
||||
public Date unwrapDate(Object extractedValue) {
|
||||
return (Date) extractedValue;
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ interface QueryParameterSetter {
|
||||
|
||||
Object extractedValue = valueExtractor.apply(accessor);
|
||||
|
||||
final Date value = accessor.extractDate(extractedValue);
|
||||
final Date value = accessor.unwrapDate(extractedValue);
|
||||
|
||||
// One would think we can simply use parameter to identify the parameter we want to set.
|
||||
// But that does not work with list valued parameters. At least Hibernate tries to bind them by name.
|
||||
|
||||
@@ -68,7 +68,7 @@ class NamedOrIndexedQueryParameterSetterUnitTests {
|
||||
Date testDate = new Date();
|
||||
|
||||
when(accessor.getValues()).thenReturn(new Object[] { testDate });
|
||||
when(accessor.extractDate(testDate)).thenReturn(testDate);
|
||||
when(accessor.unwrapDate(testDate)).thenReturn(testDate);
|
||||
|
||||
this.methodArguments = accessor;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user