From a948ff922c4feb76ae521d44092967e09b23e98b Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Mon, 14 Feb 2022 17:01:51 +0100 Subject: [PATCH] AbstractPersistentProperty.isMap() now delegates to underlying TypeInformation. Issue #2549 --- .../mapping/model/AbstractPersistentProperty.java | 3 +-- .../model/AbstractPersistentPropertyUnitTests.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java b/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java index b7361896b..c2a63f9c9 100644 --- a/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java +++ b/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java @@ -20,7 +20,6 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Collections; import java.util.HashSet; -import java.util.Map; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -318,7 +317,7 @@ public abstract class AbstractPersistentProperty

*/ @Override public boolean isMap() { - return Map.class.isAssignableFrom(getType()); + return information.isMap(); } /* diff --git a/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java b/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java index f9d11f075..eb7c7bfc4 100755 --- a/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java +++ b/src/test/java/org/springframework/data/mapping/model/AbstractPersistentPropertyUnitTests.java @@ -238,6 +238,14 @@ public class AbstractPersistentPropertyUnitTests { .containsExactly((Class) JMoleculesAggregate.class); } + @Test // #2549 + void considersVavrMaps() { + + SamplePersistentProperty property = getProperty(VavrWrapper.class, "vavrMap"); + + assertThat(property.isMap()).isTrue(); + } + private BasicPersistentEntity getEntity(Class type) { return new BasicPersistentEntity<>(ClassTypeInformation.from(type)); } @@ -399,4 +407,8 @@ public class AbstractPersistentPropertyUnitTests { interface JMoleculesAggregate extends AggregateRoot { } + + class VavrWrapper { + io.vavr.collection.Map vavrMap; + } }