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:
Jens Schauder
2023-03-15 12:33:42 +01:00
parent cf97015aa5
commit fff09c0993
4 changed files with 14 additions and 9 deletions

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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.

View File

@@ -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;
}