From 9ce25da43160c3884a5270dcfed97bcc519d707d Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 11 Jun 2025 09:11:02 +0200 Subject: [PATCH] Polishing. Extract method. See #3310 --- .../mapping/context/PersistentEntities.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java b/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java index e44294167..253c119f9 100644 --- a/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java +++ b/src/main/java/org/springframework/data/mapping/context/PersistentEntities.java @@ -238,7 +238,24 @@ public class PersistentEntities implements Streamable getEntityIdentifiedBy(TypeInformation type) { + Collection> entities = getPersistentEntities(type); + + if (entities.size() > 1) { + + String message = "Found multiple entities identified by " + type.getType() + ": "; + message += entities.stream().map(it -> it.getType().getName()).collect(Collectors.joining(", ")); + message += "; Introduce dedicated unique identifier types or explicitly define the target type in @Reference"; + + throw new IllegalStateException(message); + } + + return entities.isEmpty() ? null : entities.iterator().next(); + } + + private Collection> getPersistentEntities(TypeInformation type) { + Collection> entities = new ArrayList<>(); + for (MappingContext> context : getMappingContexts()) { for (PersistentEntity> persistentProperties : context @@ -253,16 +270,7 @@ public class PersistentEntities implements Streamable 1) { - - String message = "Found multiple entities identified by " + type.getType() + ": "; - message += entities.stream().map(it -> it.getType().getName()).collect(Collectors.joining(", ")); - message += "; Introduce dedicated unique identifier types or explicitly define the target type in @Reference"; - - throw new IllegalStateException(message); - } - - return entities.isEmpty() ? null : entities.iterator().next(); + return entities; } private Collection>> getMappingContexts() {