From a4838ad86cdbcc099f0d70cf3f2ab44081939931 Mon Sep 17 00:00:00 2001 From: Abdirizak Obsiye Date: Mon, 3 Feb 2025 16:52:54 +0000 Subject: [PATCH] Fix case document lazy loading (#1331) Lazy load the case defendants documents to fix the error: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: uk.gov.justice.probation.courtcaseservice.jpa.entity.CaseDefendantEntity.documents: could not initialize proxy - no Session --- .../controller/mapper/CourtCaseResponseMapper.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/justice/probation/courtcaseservice/controller/mapper/CourtCaseResponseMapper.java b/src/main/java/uk/gov/justice/probation/courtcaseservice/controller/mapper/CourtCaseResponseMapper.java index e1807a2f..33bbde93 100644 --- a/src/main/java/uk/gov/justice/probation/courtcaseservice/controller/mapper/CourtCaseResponseMapper.java +++ b/src/main/java/uk/gov/justice/probation/courtcaseservice/controller/mapper/CourtCaseResponseMapper.java @@ -1,6 +1,7 @@ package uk.gov.justice.probation.courtcaseservice.controller.mapper; import lombok.extern.slf4j.Slf4j; +import org.hibernate.Hibernate; import org.jetbrains.annotations.NotNull; import uk.gov.justice.probation.courtcaseservice.controller.model.CaseCommentResponse; import uk.gov.justice.probation.courtcaseservice.controller.model.CaseDocumentResponse; @@ -47,7 +48,10 @@ public static CourtCaseResponse mapFrom(HearingEntity hearingEntity, String defe private static List mapCaseDocuments(HearingEntity hearingEntity, String defendantId) { return hearingEntity.getCourtCase().getCaseDefendant(defendantId) - .map(CaseDefendantEntity::getDocuments) + .map(caseDefendantEntity -> { + Hibernate.initialize(caseDefendantEntity.getDocuments()); + return caseDefendantEntity.getDocuments(); + }) .map(caseDefendantDocumentEntities -> caseDefendantDocumentEntities.stream() .map(doc -> new CaseDocumentResponse(doc.getDocumentId(),doc.getCreated(), new CaseDocumentResponse.FileResponse(doc.getDocumentName(), 0))) .collect(Collectors.toList())