From ad8b6fccb47b20f74d47ebd5f24bbb5d58cf0810 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Sun, 14 Aug 2011 16:35:09 +0200 Subject: [PATCH] DATADOC-237 - Index name considers field name if not configured explicitly. --- .../MongoPersistentEntityIndexCreator.java | 4 +- .../core/index/IndexingIntegrationTests.java | 92 +++++++++++++++++++ .../mongodb/core/mapping/MappingTests.java | 2 +- 3 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexingIntegrationTests.java diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreator.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreator.java index e37b474ba..b5c036167 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreator.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/MongoPersistentEntityIndexCreator.java @@ -106,7 +106,7 @@ public class MongoPersistentEntityIndexCreator implements ApplicationListener entityType) { + + return operations.execute(entityType, new CollectionCallback() { + public Boolean doInCollection(DBCollection collection) throws MongoException, DataAccessException { + for (DBObject indexInfo : collection.getIndexInfo()) { + if (indexName.equals(indexInfo.get("name"))) { + return true; + } + } + return false; + } + }); + } +} diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java index 234e06a3d..51c752342 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java @@ -251,7 +251,7 @@ public class MappingTests { public Boolean doInCollection(DBCollection collection) throws MongoException, DataAccessException { List indexes = collection.getIndexInfo(); for (DBObject dbo : indexes) { - if ("name_1".equals(dbo.get("name"))) { + if ("name".equals(dbo.get("name"))) { return true; } }