Mam taki problem.
W serwisie posiadam 2 metody, ktorych wynikiem działania jest zwrócenie listy. Każda z nich po tym co ma zrobić, pobiera liste w dokładnie ten sam sposób
@Override
public List<RelationEntity> addRelation(RelationEntity relationEntity)
throws TooManyNullFieldsException, AscendanceViolationException, IncorrectStatusException, NotExistingMemberException, NotExistingRelationException {
FamilyEntity familyEntity = familyService.findFamilyById(relationEntity.getFamily().getId());
/*
Validate relation
*/
relationValidator.validate(relationEntity, familyEntity);
relationEntity = setMembersToCorrectPlace(relationEntity);
/*
* Verify Existing
*/
RelationEntity existing = relationService.findRelationBySimLeftAndSimRight
(relationEntity.getLeft(),
relationEntity.getRight());
/*
Prepare target
*/
RelationEntity target = existing == null ?
relationService.addNewRelation(relationEntity) : mergeChildrenAndStatus(existing, relationEntity);
return relationService.findAllRelationsByFamilyId(target.getFamily().getId());
}
@Override
public List<RelationEntity> updateRelation(RelationEntity relationEntity) throws NotExistingRelationException {
RelationEntity existing = relationService.findRelationById(relationEntity.getId());
existing.setActive(relationEntity.isActive());
existing.setType(relationEntity.getType());
existing = relationService.updateRelation(target);
List<RelationEntity> targetList = relationService.findAllRelationsByFamilyId(existing.getFamily().getId());
Hibernate.initialize(targetList);
targetList.forEach(Hibernate::initialize);
return targetList;
}
Metoda AddRelation działa prawidłowo, natomiast updateRelation zwraca LazyInitializationException w momencie konwersji entityDoDTO. Na wyjsciu obydwu metod dokonywana jest konwersja dokladnie w taki sam sposób.
Jak widac wyżej, próbowałam to ratowac używając Hibernate.initialize ale nie działa. Ma ktos jakiś pomysł dlaczego podobne wywołanie działa w jednym przypadku a w innym nie ?