diff --git a/src/main/java/org/springframework/data/repository/query/ReturnedType.java b/src/main/java/org/springframework/data/repository/query/ReturnedType.java index 12aa6e0d2..abe6189df 100644 --- a/src/main/java/org/springframework/data/repository/query/ReturnedType.java +++ b/src/main/java/org/springframework/data/repository/query/ReturnedType.java @@ -29,7 +29,6 @@ import org.springframework.data.mapping.PreferredConstructor; import org.springframework.data.mapping.model.PreferredConstructorDiscoverer; import org.springframework.data.projection.ProjectionFactory; import org.springframework.data.projection.ProjectionInformation; -import org.springframework.data.util.Lazy; import org.springframework.lang.NonNull; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -227,8 +226,8 @@ public abstract class ReturnedType { private static final Set> VOID_TYPES = new HashSet<>(Arrays.asList(Void.class, void.class)); - private final Lazy isDto; private final Class type; + private final boolean isDto; private final List inputProperties; /** @@ -246,15 +245,14 @@ public abstract class ReturnedType { Assert.isTrue(!returnedType.isInterface(), "Returned type must not be an interface"); this.type = returnedType; - this.isDto = Lazy.of(() -> - !Object.class.equals(type) && // - !type.isEnum() && // - !isDomainSubtype() && // - !isPrimitiveOrWrapper() && // - !Number.class.isAssignableFrom(type) && // - !VOID_TYPES.contains(type) && // - !type.getPackage().getName().startsWith("java.") - ); + this.isDto = !Object.class.equals(type) && // + !type.isEnum() && // + !isDomainSubtype() && // + !isPrimitiveOrWrapper() && // + !Number.class.isAssignableFrom(type) && // + !VOID_TYPES.contains(type) && // + !type.getPackage().getName().startsWith("java."); + this.inputProperties = detectConstructorParameterNames(returnedType); } @@ -306,7 +304,7 @@ public abstract class ReturnedType { } private boolean isDto() { - return isDto.get(); + return isDto; } private boolean isDomainSubtype() {