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")