diff --git a/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/GeneratedReportRepositoryImpl.java b/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/GeneratedReportRepositoryImpl.java index 4accfc0..db86db2 100644 --- a/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/GeneratedReportRepositoryImpl.java +++ b/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/GeneratedReportRepositoryImpl.java @@ -56,20 +56,29 @@ public class GeneratedReportRepositoryImpl implements GeneratedReportRepository, } @Override + @Transactional public Optional 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 + @Transactional public List findByOrganizationId(Long organizationId) { - return find("organization.id = ?1 order by createdAt desc", organizationId).stream() + List 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) .toList(); } @Override + @Transactional public List findByUserId(Long userId) { - return find("user.id = ?1 order by createdAt desc", userId).stream() + List 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) .toList(); } diff --git a/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/ReportTemplateRepositoryImpl.java b/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/ReportTemplateRepositoryImpl.java index 35c1b6a..34a6016 100644 --- a/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/ReportTemplateRepositoryImpl.java +++ b/backend/src/main/java/net/beetechgroup/beetask/frameworks/persistence/repository/ReportTemplateRepositoryImpl.java @@ -56,20 +56,29 @@ public class ReportTemplateRepositoryImpl implements ReportTemplateRepository, P } @Override + @Transactional public Optional 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 + @Transactional public List findByOrganizationId(Long organizationId) { - return find("organization.id = ?1 order by createdAt desc", organizationId).stream() + List 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) .toList(); } @Override + @Transactional public List findByProjectId(Long projectId) { - return find("project.id = ?1 order by createdAt desc", projectId).stream() + List 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) .toList(); }