fix(reports): resolve ResultSet is closed error on list templates by eager fetching associations with transactional
This commit is contained in:
parent
57165fdbe9
commit
d3243b3fb5
2 changed files with 24 additions and 6 deletions
|
|
@ -56,20 +56,29 @@ public class GeneratedReportRepositoryImpl implements GeneratedReportRepository,
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public Optional<GeneratedReport> findGeneratedReportById(Long id) {
|
public Optional<GeneratedReport> findGeneratedReportById(Long id) {
|
||||||
return findByIdOptional(id).map(ReportEntityMapper::toDomain);
|
return find("select distinct r from GeneratedReportEntity r left join fetch r.organization left join fetch r.project left join fetch r.user where r.id = ?1", id)
|
||||||
|
.firstResultOptional()
|
||||||
|
.map(ReportEntityMapper::toDomain);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public List<GeneratedReport> findByOrganizationId(Long organizationId) {
|
public List<GeneratedReport> findByOrganizationId(Long organizationId) {
|
||||||
return find("organization.id = ?1 order by createdAt desc", organizationId).stream()
|
List<GeneratedReportEntity> entities = find("select distinct r from GeneratedReportEntity r left join fetch r.organization left join fetch r.project left join fetch r.user where r.organization.id = ?1 order by r.createdAt desc", organizationId)
|
||||||
|
.list();
|
||||||
|
return entities.stream()
|
||||||
.map(ReportEntityMapper::toDomain)
|
.map(ReportEntityMapper::toDomain)
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public List<GeneratedReport> findByUserId(Long userId) {
|
public List<GeneratedReport> findByUserId(Long userId) {
|
||||||
return find("user.id = ?1 order by createdAt desc", userId).stream()
|
List<GeneratedReportEntity> entities = find("select distinct r from GeneratedReportEntity r left join fetch r.organization left join fetch r.project left join fetch r.user where r.user.id = ?1 order by r.createdAt desc", userId)
|
||||||
|
.list();
|
||||||
|
return entities.stream()
|
||||||
.map(ReportEntityMapper::toDomain)
|
.map(ReportEntityMapper::toDomain)
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -56,20 +56,29 @@ public class ReportTemplateRepositoryImpl implements ReportTemplateRepository, P
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public Optional<ReportTemplate> findReportTemplateById(Long id) {
|
public Optional<ReportTemplate> findReportTemplateById(Long id) {
|
||||||
return findByIdOptional(id).map(ReportEntityMapper::toDomain);
|
return find("select distinct t from ReportTemplateEntity t left join fetch t.sections s left join fetch s.filterCategory left join fetch t.project left join fetch t.organization left join fetch t.createdBy where t.id = ?1", id)
|
||||||
|
.firstResultOptional()
|
||||||
|
.map(ReportEntityMapper::toDomain);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public List<ReportTemplate> findByOrganizationId(Long organizationId) {
|
public List<ReportTemplate> findByOrganizationId(Long organizationId) {
|
||||||
return find("organization.id = ?1 order by createdAt desc", organizationId).stream()
|
List<ReportTemplateEntity> entities = find("select distinct t from ReportTemplateEntity t left join fetch t.sections s left join fetch s.filterCategory left join fetch t.project left join fetch t.organization left join fetch t.createdBy where t.organization.id = ?1 order by t.createdAt desc", organizationId)
|
||||||
|
.list();
|
||||||
|
return entities.stream()
|
||||||
.map(ReportEntityMapper::toDomain)
|
.map(ReportEntityMapper::toDomain)
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public List<ReportTemplate> findByProjectId(Long projectId) {
|
public List<ReportTemplate> findByProjectId(Long projectId) {
|
||||||
return find("project.id = ?1 order by createdAt desc", projectId).stream()
|
List<ReportTemplateEntity> entities = find("select distinct t from ReportTemplateEntity t left join fetch t.sections s left join fetch s.filterCategory left join fetch t.project left join fetch t.organization left join fetch t.createdBy where t.project.id = ?1 order by t.createdAt desc", projectId)
|
||||||
|
.list();
|
||||||
|
return entities.stream()
|
||||||
.map(ReportEntityMapper::toDomain)
|
.map(ReportEntityMapper::toDomain)
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue