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.
This commit is contained in:
Christoph Strobl
2014-09-04 12:20:53 +02:00
committed by Oliver Gierke
parent d6defbcb56
commit 8bb62a65db
2 changed files with 4 additions and 2 deletions

View File

@@ -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());

View File

@@ -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"));
}
/**