diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java index a508a7ce9..8fa1bff8f 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java @@ -62,6 +62,7 @@ public class SimpleTypeHolder { DEFAULTS.add(Locale.class); DEFAULTS.add(Class.class); DEFAULTS.add(Number.class); + DEFAULTS.add(Enum.class); } private final Set> simpleTypes; @@ -124,6 +125,6 @@ public class SimpleTypeHolder { return true; } } - return type.isEnum(); + return false; } } diff --git a/spring-data-commons-core/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java b/spring-data-commons-core/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java index 624ebba28..23e70a985 100644 --- a/spring-data-commons-core/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java +++ b/spring-data-commons-core/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java @@ -92,4 +92,35 @@ public class SimpleTypeHolderUnitTests { SimpleTypeHolder holder = new SimpleTypeHolder(); assertThat(holder.isSimpleType(Object.class), is(true)); } + + @Test + public void considersSimpleEnumAsSimple() { + + SimpleTypeHolder holder = new SimpleTypeHolder(); + assertThat(holder.isSimpleType(SimpleEnum.FOO.getClass()), is(true)); + } + + @Test + public void considersComplexEnumAsSimple() { + + SimpleTypeHolder holder = new SimpleTypeHolder(); + assertThat(holder.isSimpleType(ComplexEnum.FOO.getClass()), is(true)); + } + + enum SimpleEnum { + + FOO; + } + + enum ComplexEnum { + + FOO { + @Override + boolean method() { + return false; + } + }; + + abstract boolean method(); + } }