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 0131c30e4..73123c8ef 100644 --- a/src/main/java/org/springframework/data/repository/query/ReturnedType.java +++ b/src/main/java/org/springframework/data/repository/query/ReturnedType.java @@ -299,6 +299,7 @@ public abstract class ReturnedType { private boolean isDto() { return !Object.class.equals(type) && // + !type.isEnum() && // !isDomainSubtype() && // !isPrimitiveOrWrapper() && // !Number.class.isAssignableFrom(type) && // 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 08afcd423..02468b7cd 100644 --- a/src/test/java/org/springframework/data/repository/query/ReturnedTypeUnitTests.java +++ b/src/test/java/org/springframework/data/repository/query/ReturnedTypeUnitTests.java @@ -142,6 +142,18 @@ public class ReturnedTypeUnitTests { assertThat(type.needsCustomConstruction(), is(false)); } + /** + * @see DATACMNS-840 + */ + @Test + public void doesNotConsiderAnEnumProjecting() throws Exception { + + ReturnedType type = getReturnedType("findEnum"); + + assertThat(type.needsCustomConstruction(), is(false)); + assertThat(type.isProjecting(), is(false)); + } + private static ReturnedType getReturnedType(String methodName, Class... parameters) throws Exception { return getQueryMethod(methodName, parameters).getResultProcessor().getReturnedType(); } @@ -176,6 +188,12 @@ public class ReturnedTypeUnitTests { BigInteger countQuery(); SampleDtoWithMultipleConstructors dtoWithMultipleConstructors(); + + MyEnum findEnum(); + + static enum MyEnum { + VALUE + } } static class Sample {