Skip to content

Commit c31872d

Browse files
TheHettchristophstrobl
authored andcommitted
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
1 parent 212509f commit c31872d

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Diff for: spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DefaultReferenceResolver.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import java.util.Collections;
2121

22+
import org.bson.Document;
2223
import org.springframework.dao.support.PersistenceExceptionTranslator;
2324
import org.springframework.data.mongodb.core.mapping.DBRef;
2425
import org.springframework.data.mongodb.core.mapping.DocumentReference;
@@ -32,6 +33,7 @@
3233
*
3334
* @author Christoph Strobl
3435
* @author Mark Paluch
36+
* @author Anton Buzdalkin
3537
* @since 3.3
3638
*/
3739
public class DefaultReferenceResolver implements ReferenceResolver {
@@ -41,8 +43,8 @@ public class DefaultReferenceResolver implements ReferenceResolver {
4143

4244
private final LookupFunction collectionLookupFunction = (filter, ctx) -> getReferenceLoader().fetchMany(filter, ctx);
4345
private final LookupFunction singleValueLookupFunction = (filter, ctx) -> {
44-
Object target = getReferenceLoader().fetchOne(filter, ctx);
45-
return target == null ? Collections.emptyList() : Collections.singleton(getReferenceLoader().fetchOne(filter, ctx));
46+
Document target = getReferenceLoader().fetchOne(filter, ctx);
47+
return target == null ? Collections.emptyList() : Collections.singleton(target);
4648
};
4749

4850
/**

0 commit comments

Comments
 (0)