From 7f1c66e2d6c6d6a012c47bf2a0a39b8e4c69c3c8 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 16 May 2024 09:07:18 +0200 Subject: [PATCH] Use collection name instead type to look up the collection for index creation. Closes: #4698 Original Pull Request: #4699 --- .../data/mongodb/core/DefaultIndexOperations.java | 4 ---- .../mongodb/core/DefaultIndexOperationsUnitTests.java | 10 ++++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java index 583453c7a..ebac398e2 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java @@ -208,10 +208,6 @@ public class DefaultIndexOperations implements IndexOperations { Assert.notNull(callback, "CollectionCallback must not be null"); - if (type != null) { - return mongoOperations.execute(type, callback); - } - return mongoOperations.execute(collectionName, callback); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java index 3cc7153de..c83d2fc38 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java @@ -43,6 +43,7 @@ import com.mongodb.client.model.IndexOptions; * Unit tests for {@link DefaultIndexOperations}. * * @author Christoph Strobl + * @author Mark Paluch */ @ExtendWith(MockitoExtension.class) public class DefaultIndexOperationsUnitTests { @@ -121,6 +122,15 @@ public class DefaultIndexOperationsUnitTests { verify(collection).createIndex(eq(new Document("firstname", "hashed")), any()); } + @Test // GH-4698 + void shouldConsiderGivenCollectionName() { + + DefaultIndexOperations operations = new DefaultIndexOperations(template, "foo", Jedi.class); + + operations.ensureIndex(HashedIndex.hashed("name")); + verify(db).getCollection(eq("foo"), any(Class.class)); + } + private DefaultIndexOperations indexOpsFor(Class type) { return new DefaultIndexOperations(template, template.getCollectionName(type), type); }