diff --git a/backend/src/main/java/org/raddatz/familienarchiv/person/relationship/RelationshipService.java b/backend/src/main/java/org/raddatz/familienarchiv/person/relationship/RelationshipService.java index 51b312c6..ee237617 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/person/relationship/RelationshipService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/person/relationship/RelationshipService.java @@ -86,6 +86,15 @@ public class RelationshipService { return new NetworkDTO(nodes, edges); } + /** + * Returns all {@code SPOUSE_OF} edges with both person sides JOIN FETCHed. + * Used by {@code TimelineService.assembleDerivedEvents()} to build Heirat events + * without per-edge N+1 queries. + */ + public List findAllSpouseEdges() { + return relationshipRepository.findAllByRelationTypeIn(List.of(RelationType.SPOUSE_OF)); + } + @Transactional public RelationshipDTO addRelationship(UUID personId, CreateRelationshipRequest dto) { if (personId.equals(dto.relatedPersonId())) {