Skip to content

Commit 37dcade

Browse files
committed
Polishing.
Use ObjectUtils.isEmpty for emptiness check. See #1737 Original pull request: #1812
1 parent da64048 commit 37dcade

File tree

1 file changed

+17
-28
lines changed

1 file changed

+17
-28
lines changed

spring-data-relational/src/main/java/org/springframework/data/relational/core/conversion/MappingRelationalConverter.java

Lines changed: 17 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,16 @@
4141
import org.springframework.data.mapping.PersistentPropertyAccessor;
4242
import org.springframework.data.mapping.PersistentPropertyPathAccessor;
4343
import org.springframework.data.mapping.context.MappingContext;
44-
import org.springframework.data.mapping.model.*;
44+
import org.springframework.data.mapping.model.ConvertingPropertyAccessor;
45+
import org.springframework.data.mapping.model.DefaultSpELExpressionEvaluator;
46+
import org.springframework.data.mapping.model.EntityInstantiator;
47+
import org.springframework.data.mapping.model.ParameterValueProvider;
48+
import org.springframework.data.mapping.model.PersistentEntityParameterValueProvider;
49+
import org.springframework.data.mapping.model.PropertyValueProvider;
50+
import org.springframework.data.mapping.model.SimpleTypeHolder;
51+
import org.springframework.data.mapping.model.SpELContext;
52+
import org.springframework.data.mapping.model.SpELExpressionEvaluator;
53+
import org.springframework.data.mapping.model.SpELExpressionParameterValueProvider;
4554
import org.springframework.data.projection.EntityProjection;
4655
import org.springframework.data.projection.EntityProjectionIntrospector;
4756
import org.springframework.data.projection.EntityProjectionIntrospector.ProjectionPredicate;
@@ -61,6 +70,7 @@
6170
import org.springframework.lang.Nullable;
6271
import org.springframework.util.Assert;
6372
import org.springframework.util.ClassUtils;
73+
import org.springframework.util.ObjectUtils;
6474

6575
/**
6676
* {@link org.springframework.data.relational.core.conversion.RelationalConverter} that uses a
@@ -1139,37 +1149,15 @@ public boolean hasValue(AggregatePath path) {
11391149
if (value == null) {
11401150
return false;
11411151
}
1152+
11421153
if (!path.isCollectionLike()) {
11431154
return true;
11441155
}
11451156

1146-
if (value instanceof char[] ar) {
1147-
return ar.length != 0;
1148-
}
1149-
if (value instanceof byte[] ar) {
1150-
return ar.length != 0;
1151-
}
1152-
if (value instanceof short[] ar) {
1153-
return ar.length != 0;
1154-
}
1155-
if (value instanceof int[] ar) {
1156-
return ar.length != 0;
1157-
}
1158-
if (value instanceof long[] ar) {
1159-
return ar.length != 0;
1160-
}
1161-
if (value instanceof float[] ar) {
1162-
return ar.length != 0;
1163-
}
1164-
if (value instanceof double[] ar) {
1165-
return ar.length != 0;
1166-
}
1167-
if (value instanceof Object[] ar) {
1168-
return ar.length != 0;
1169-
}
1170-
if (value instanceof Collection<?> col) {
1171-
return !col.isEmpty();
1157+
if (value instanceof Collection<?> || value.getClass().isArray()) {
1158+
return !ObjectUtils.isEmpty(value);
11721159
}
1160+
11731161
return true;
11741162
}
11751163

@@ -1227,7 +1215,8 @@ private static class ConverterAwareSpELExpressionParameterValueProvider
12271215
* @param delegate must not be {@literal null}.
12281216
*/
12291217
public ConverterAwareSpELExpressionParameterValueProvider(ConversionContext context,
1230-
SpELExpressionEvaluator evaluator, ConversionService conversionService, ParameterValueProvider<RelationalPersistentProperty> delegate) {
1218+
SpELExpressionEvaluator evaluator, ConversionService conversionService,
1219+
ParameterValueProvider<RelationalPersistentProperty> delegate) {
12311220

12321221
super(evaluator, conversionService, delegate);
12331222

0 commit comments

Comments
 (0)