From d10e4afefd849515a63be7f0d5a39226c0a38a33 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 17 Nov 2017 14:59:03 +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 ++ .../BasicMongoPersistentEntityUnitTests.java | 32 ++++++++++++++++++- 2 files changed, 33 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 71734ecc4..15121f308 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 @@ -146,6 +146,8 @@ public class BasicMongoPersistentEntity extends BasicPersistentEntity entity = context.getPersistentEntity(Sample.class); + + final List properties = new ArrayList(); + + entity.doWithProperties(new SimplePropertyHandler() { + + @Override + public void doWithPersistentProperty(PersistentProperty property) { + properties.add(property.getName()); + } + }); + + assertThat(properties, contains("first", "second", "third")); + } + @Document(collection = "contacts") class Contact {} @@ -253,6 +276,13 @@ public class BasicMongoPersistentEntityUnitTests { @ComposedDocumentAnnotation static class DocumentWithComposedAnnotation {} + 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; + } + @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE }) @Document(collection = "collection-1")