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 822bcc44e..0131c30e4 100644 --- a/src/main/java/org/springframework/data/repository/query/ReturnedType.java +++ b/src/main/java/org/springframework/data/repository/query/ReturnedType.java @@ -262,7 +262,7 @@ public abstract class ReturnedType { * @see org.springframework.data.repository.query.ResultFactory.ReturnedType#needsCustomConstruction() */ public boolean needsCustomConstruction() { - return isDto(); + return isDto() && !inputProperties.isEmpty(); } /* diff --git a/src/test/java/org/springframework/data/repository/query/ReturnedTypeUnitTests.java b/src/test/java/org/springframework/data/repository/query/ReturnedTypeUnitTests.java index a37521ef0..08afcd423 100644 --- a/src/test/java/org/springframework/data/repository/query/ReturnedTypeUnitTests.java +++ b/src/test/java/org/springframework/data/repository/query/ReturnedTypeUnitTests.java @@ -139,6 +139,7 @@ public class ReturnedTypeUnitTests { ReturnedType type = getReturnedType("dtoWithMultipleConstructors"); assertThat(type.getInputProperties(), is(empty())); + assertThat(type.needsCustomConstruction(), is(false)); } private static ReturnedType getReturnedType(String methodName, Class... parameters) throws Exception {