From 3d705a737faba0e165f534672fa1ec1eeb490a41 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Thu, 4 Sep 2014 12:20:53 +0200 Subject: [PATCH] DATAMONGO-1040 - Derived delete should respect collection name. Adding collection metadata allows to fine grained remove entities from specific collections using derived delete queries. Original pull request: #223. --- .../data/mongodb/repository/query/AbstractMongoQuery.java | 2 +- .../mongodb/repository/query/AbstractMongoQueryUnitTests.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java index 4ab8c2931..75c86b025 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java @@ -418,7 +418,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { private Object deleteAndConvertResult(Query query, MongoEntityMetadata metadata) { if (method.isCollectionQuery()) { - return operations.findAllAndRemove(query, metadata.getJavaType()); + return operations.findAllAndRemove(query, metadata.getJavaType(), metadata.getCollectionName()); } WriteResult writeResult = operations.remove(query, metadata.getJavaType(), metadata.getCollectionName()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java index 02db5463b..8735367ca 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java @@ -101,6 +101,7 @@ public class AbstractMongoQueryUnitTests { /** * @see DATAMONGO-566 + * @see DATAMONGO-1040 */ @SuppressWarnings("unchecked") @Test @@ -111,7 +112,8 @@ public class AbstractMongoQueryUnitTests { createQueryForMethod("deleteByLastname", String.class).setDeleteQuery(true).execute(new Object[] { "booh" }); - verify(this.mongoOperationsMock, times(1)).findAllAndRemove(Matchers.any(Query.class), Matchers.eq(Person.class)); + verify(this.mongoOperationsMock, times(1)).findAllAndRemove(Matchers.any(Query.class), Matchers.eq(Person.class), + Matchers.eq("persons")); } /**