From d8cea8ba1cb76e45b323773f44dd66d9da98e3f2 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Tue, 14 Nov 2017 09:56:37 +0100 Subject: [PATCH] =?UTF-8?q?DATACMNS-1208=20-=20AbstractMappingContext.hasP?= =?UTF-8?q?ersistentEntityFor(=E2=80=A6)=20now=20properly=20considers=20ca?= =?UTF-8?q?ched=20absence.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AbstractMappingContext.hasPersistentEntityFor(…) now also properly consideres the empty Optional as non-presence as that is held to allow to distinguish between a type completely unkown to the context, or already known but not considered a persistent entity. Related pull request: #258. --- .../data/mapping/context/AbstractMappingContext.java | 4 +++- .../context/AbstractMappingContextUnitTests.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java index 0d3a6504c..c0906df35 100644 --- a/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java +++ b/src/main/java/org/springframework/data/mapping/context/AbstractMappingContext.java @@ -181,7 +181,9 @@ public abstract class AbstractMappingContext entity = persistentEntities.get(ClassTypeInformation.from(type)); + + return entity == null ? false : entity.isPresent(); } /* diff --git a/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java b/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java index 1b27db175..67d5ea4ed 100755 --- a/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java +++ b/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java @@ -244,6 +244,16 @@ public class AbstractMappingContextUnitTests { .isSameAs(context.getPersistentPropertyPath("persons.name", Sample.class)); } + @Test // DATACMNS-1208 + public void ensureHasPersistentEntityReportsFalseForTypesThatShouldntBeCreated() { + + SampleMappingContext context = new SampleMappingContext(); + + assertThat(context.hasPersistentEntityFor(String.class)).isFalse(); + assertThat(context.getPersistentEntity(String.class)).isNull(); + assertThat(context.hasPersistentEntityFor(String.class)).isFalse(); + } + private static void assertHasEntityFor(Class type, SampleMappingContext context, boolean expected) { boolean found = false;