From 8bb62a65db71931d025e383c2cf1e2b526eee620 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 e847d9a52..6d3461fbb 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 @@ -388,7 +388,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 ea75a89c4..357075c04 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 @@ -96,6 +96,7 @@ public class AbstractMongoQueryUnitTests { /** * @see DATAMONGO-566 + * @see DATAMONGO-1040 */ @SuppressWarnings("unchecked") @Test @@ -106,7 +107,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")); } /**