Browse Source

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.
pull/224/head
Christoph Strobl 11 years ago committed by Oliver Gierke
parent
commit
3d705a737f
  1. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java
  2. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/AbstractMongoQuery.java

@ -418,7 +418,7 @@ public abstract class AbstractMongoQuery implements RepositoryQuery { @@ -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());

4
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/query/AbstractMongoQueryUnitTests.java

@ -101,6 +101,7 @@ public class AbstractMongoQueryUnitTests { @@ -101,6 +101,7 @@ public class AbstractMongoQueryUnitTests {
/**
* @see DATAMONGO-566
* @see DATAMONGO-1040
*/
@SuppressWarnings("unchecked")
@Test
@ -111,7 +112,8 @@ public class AbstractMongoQueryUnitTests { @@ -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"));
}
/**

Loading…
Cancel
Save