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 3cc4d8f71..7512b8897 100644 --- a/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java +++ b/src/main/java/org/springframework/data/mapping/model/SimpleTypeHolder.java @@ -155,7 +155,9 @@ public class SimpleTypeHolder { return isSimpleType; } - if (type.getName().startsWith("java.lang")) { + String typeName = type.getName(); + + if (typeName.startsWith("java.lang") || type.getName().startsWith("java.time")) { return true; } @@ -170,6 +172,7 @@ public class SimpleTypeHolder { } this.simpleTypes = put(localSimpleTypes, type, false); + return false; } diff --git a/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java b/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java index 6820828f0..aebcfeecc 100755 --- a/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java +++ b/src/test/java/org/springframework/data/mapping/SimpleTypeHolderUnitTests.java @@ -18,6 +18,7 @@ package org.springframework.data.mapping; import static org.assertj.core.api.Assertions.*; import java.lang.reflect.Type; +import java.time.Instant; import java.util.Collections; import java.util.HashSet; import java.util.UUID; @@ -114,6 +115,14 @@ public class SimpleTypeHolderUnitTests { assertThat(holder.isSimpleType(Type.class)).isTrue(); } + @Test // DATACMNS-1294 + public void considersJavaTimeTypesSimple() { + + SimpleTypeHolder holder = SimpleTypeHolder.DEFAULT; + + assertThat(holder.isSimpleType(Instant.class)).isTrue(); + } + @Test // DATACMNS-1101 public void considersExtendedTypeAsSimple() {