Browse Source

Use collection name instead type to look up the collection for index creation.

Closes: #4698
Original Pull Request: #4699
pull/4717/head
Mark Paluch 2 years ago committed by Christoph Strobl
parent
commit
d7549f4fea
No known key found for this signature in database
GPG Key ID: E6054036D0C37A4B
  1. 4
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java
  2. 10
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsUnitTests.java

4
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/DefaultIndexOperations.java

@ -209,10 +209,6 @@ public class DefaultIndexOperations implements IndexOperations {
Assert.notNull(callback, "CollectionCallback must not be null"); Assert.notNull(callback, "CollectionCallback must not be null");
if (type != null) {
return mongoOperations.execute(type, callback);
}
return mongoOperations.execute(collectionName, callback); return mongoOperations.execute(collectionName, callback);
} }

10
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}. * Unit tests for {@link DefaultIndexOperations}.
* *
* @author Christoph Strobl * @author Christoph Strobl
* @author Mark Paluch
*/ */
@ExtendWith(MockitoExtension.class) @ExtendWith(MockitoExtension.class)
public class DefaultIndexOperationsUnitTests { public class DefaultIndexOperationsUnitTests {
@ -121,6 +122,15 @@ public class DefaultIndexOperationsUnitTests {
verify(collection).createIndex(eq(new Document("firstname", "hashed")), any()); 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) { private DefaultIndexOperations indexOpsFor(Class<?> type) {
return new DefaultIndexOperations(template, template.getCollectionName(type), type); return new DefaultIndexOperations(template, template.getCollectionName(type), type);
} }

Loading…
Cancel
Save