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 e500cc79e..d05ab08db 100644
--- a/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java
+++ b/src/main/java/org/springframework/data/mapping/model/AbstractPersistentProperty.java
@@ -316,6 +316,6 @@ public abstract class AbstractPersistentProperty
*/
@Override
public String toString() {
- return String.format("%s.%s : %s", getOwner().getType().getName(), getName(), getType().getName());
+ return this.field.toString();
}
}
diff --git a/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java b/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java
index 83f13d81a..8afd01a61 100644
--- a/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java
+++ b/src/main/java/org/springframework/data/mapping/model/BasicPersistentEntity.java
@@ -161,7 +161,10 @@ public class BasicPersistentEntity> implement
Assert.notNull(property);
properties.add(property);
- propertyCache.put(property.getName(), property);
+
+ if (!propertyCache.containsKey(property.getName())) {
+ propertyCache.put(property.getName(), property);
+ }
if (property.isIdProperty()) {
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 31d7fe255..8df1ba693 100644
--- a/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java
+++ b/src/test/java/org/springframework/data/mapping/context/AbstractMappingContextUnitTests.java
@@ -27,6 +27,7 @@ import org.junit.Test;
import org.mockito.Mockito;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
+import org.springframework.data.annotation.Id;
import org.springframework.data.mapping.PersistentEntity;
import org.springframework.data.mapping.PropertyPath;
import org.springframework.data.mapping.model.BasicPersistentEntity;
@@ -142,6 +143,17 @@ public class AbstractMappingContextUnitTests {
assertThat(entity.getPersistentProperty("metaClass"), is(nullValue()));
}
+ /**
+ * @see DATACMNS-???
+ */
+ @Test
+ public void usesMostConcreteProperty() {
+
+ SampleMappingContext mappingContext = new SampleMappingContext();
+ PersistentEntity