Skip to content

deleteAll repository query don't use EntityMetadata collection name [DATAMONGO-1040] #1963

Closed
@spring-projects-issues

Description

@spring-projects-issues

Youness opened DATAMONGO-1040 and commented

Unlike other methods, deleteAll repository queries don't use the collection name provided by MongoEntityMetadata. This prevents me to use multiple collection names for a same Entity.

In AbstractMongoQuery$AbstractMongoQuery :

		private Object deleteAndConvertResult(Query query, MongoEntityMetadata<?> metadata) {

			if (method.isCollectionQuery()) {
				return operations.findAllAndRemove(query, metadata.getJavaType());
			}

			WriteResult writeResult = operations.remove(query, metadata.getJavaType(), metadata.getCollectionName());
			return writeResult != null ? writeResult.getN() : 0L;
		}

A simple change will fix that :

if (method.isCollectionQuery()) {
     return operations.findAllAndRemove(query, metadata.getJavaType(), metadata.getCollectionName());
}

Thanks


Affects: 1.5.4 (Dijkstra SR4)

Referenced from: pull request #223

Backported to: 1.5.5 (Dijkstra SR5)

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions