diff --git a/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java b/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java index 00a2db896..3cc4d8f71 100644 --- a/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java +++ b/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java @@ -147,7 +147,7 @@ public class SimpleTypeHolder { Map, Boolean> localSimpleTypes = this.simpleTypes; Boolean isSimpleType = localSimpleTypes.get(type); - if (Object.class.equals(type)) { + if (Object.class.equals(type) || Enum.class.isAssignableFrom(type)) { return true; } diff --git a/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java b/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java index ebb0b43d0..6820828f0 100755 --- a/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java +++ b/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java @@ -131,6 +131,15 @@ public class SimpleTypeHolderUnitTests { assertThat(holder.isSimpleType(ExtendedPerson.class)).isFalse(); } + @Test // DATACMNS-1278 + public void alwaysConsidersEnumsSimple() { + + SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT; + + assertThat(holder.isSimpleType(SomeInterface.class)).isFalse(); + assertThat(holder.isSimpleType(InterfacedEnum.class)).isTrue(); + } + enum SimpleEnum { FOO; @@ -155,4 +164,8 @@ public class SimpleTypeHolderUnitTests { static class ExtendedPerson extends Person { } + + interface SomeInterface {} + + enum InterfacedEnum implements SomeInterface {} }