From 0f3e000379fd7bb73428adcdfd157188c35939ef Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 28 Apr 2026 20:06:58 +0200 Subject: [PATCH] feat(transcription): TranscriptionBlock.mentionedPersons sidecar field @ElementCollection(LAZY) on List, mapped to V56's transcription_block_mentioned_persons via explicit @CollectionTable that matches the migration name byte-for-byte (immune to Hibernate naming-strategy changes). @Builder.Default keeps the field initialized to an empty list, so existing transcription block construction stays untouched. Refs #362 Co-Authored-By: Claude Opus 4.7 --- .../familienarchiv/model/TranscriptionBlock.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/model/TranscriptionBlock.java b/backend/src/main/java/org/raddatz/familienarchiv/model/TranscriptionBlock.java index 8fc4f8e1..3ff9ca78 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/model/TranscriptionBlock.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/model/TranscriptionBlock.java @@ -7,6 +7,8 @@ import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; @Entity @@ -33,6 +35,14 @@ public class TranscriptionBlock { @Column(columnDefinition = "TEXT") private String text; + @ElementCollection(fetch = FetchType.LAZY) + @CollectionTable( + name = "transcription_block_mentioned_persons", + joinColumns = @JoinColumn(name = "block_id")) + @Schema(requiredMode = Schema.RequiredMode.REQUIRED) + @Builder.Default + private List mentionedPersons = new ArrayList<>(); + @Column(length = 200) private String label;