Browse Source

Avoid double call of fetch method in DefaultReferenceResolver.

This commit fixes an issue where the fetch method is called twice when looking up singe value references.

Resolves: #3918
Original Pull Request: #3919
pull/3960/head
Hett 4 years ago committed by Christoph Strobl
parent
commit
64b0096c7b
No known key found for this signature in database
GPG Key ID: 8CC1AB53391458C8
  1. 6
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DefaultReferenceResolver.java

6
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DefaultReferenceResolver.java

@ -19,6 +19,7 @@ import static org.springframework.data.mongodb.core.convert.ReferenceLookupDeleg @@ -19,6 +19,7 @@ import static org.springframework.data.mongodb.core.convert.ReferenceLookupDeleg
import java.util.Collections;
import org.bson.Document;
import org.springframework.dao.support.PersistenceExceptionTranslator;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.DocumentReference;
@ -32,6 +33,7 @@ import org.springframework.util.Assert; @@ -32,6 +33,7 @@ import org.springframework.util.Assert;
*
* @author Christoph Strobl
* @author Mark Paluch
* @author Anton Buzdalkin
* @since 3.3
*/
public class DefaultReferenceResolver implements ReferenceResolver {
@ -41,8 +43,8 @@ public class DefaultReferenceResolver implements ReferenceResolver { @@ -41,8 +43,8 @@ public class DefaultReferenceResolver implements ReferenceResolver {
private final LookupFunction collectionLookupFunction = (filter, ctx) -> getReferenceLoader().fetchMany(filter, ctx);
private final LookupFunction singleValueLookupFunction = (filter, ctx) -> {
Object target = getReferenceLoader().fetchOne(filter, ctx);
return target == null ? Collections.emptyList() : Collections.singleton(getReferenceLoader().fetchOne(filter, ctx));
Document target = getReferenceLoader().fetchOne(filter, ctx);
return target == null ? Collections.emptyList() : Collections.singleton(target);
};
/**

Loading…
Cancel
Save