From eb51828d4da91a6dbf7d9457a6fc5afa1840dee4 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 17 Nov 2017 14:54:36 +0100 Subject: [PATCH] DATAMONGO-1737 - BasicMongoPersistentEntity now correctly initializes comparator. In BasicMongoPersistentEntity.verify() we now properly call the super method to make sure the comparators that honor the @Field's order value are initialized properly. --- .../mapping/BasicMongoPersistentEntity.java | 2 ++ ...BasicMongoPersistentPropertyUnitTests.java | 25 ++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java index dd9bea9e4..3637ce4f2 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/BasicMongoPersistentEntity.java @@ -149,6 +149,8 @@ public class BasicMongoPersistentEntity extends BasicPersistentEntity entity = context.getPersistentEntity(Sample.class); + + List properties = new ArrayList<>(); + + entity.doWithProperties((MongoPersistentProperty property) -> properties.add(property.getName())); + + assertThat(properties).containsExactly("first", "second", "third"); + } + private MongoPersistentProperty getPropertyFor(Field field) { return getPropertyFor(entity, field); } @@ -213,6 +229,13 @@ public class BasicMongoPersistentPropertyUnitTests { @org.springframework.data.mongodb.core.mapping.Field(order = -20) String ssn; } + class Sample { + + @org.springframework.data.mongodb.core.mapping.Field(order = 2) String second; + @org.springframework.data.mongodb.core.mapping.Field(order = 3) String third; + @org.springframework.data.mongodb.core.mapping.Field(order = 1) String first; + } + enum UppercaseFieldNamingStrategy implements FieldNamingStrategy { INSTANCE;