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.
1.5.x
Christoph Strobl 12 years ago committed by Oliver Gierke
parent
commit
8bb62a65db
  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

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

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

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

Loading…
Cancel
Save