diff --git a/backend/src/main/java/codezap/tag/repository/TemplateTagJpaRepository.java b/backend/src/main/java/codezap/tag/repository/TemplateTagJpaRepository.java index 322574cef..207385487 100644 --- a/backend/src/main/java/codezap/tag/repository/TemplateTagJpaRepository.java +++ b/backend/src/main/java/codezap/tag/repository/TemplateTagJpaRepository.java @@ -13,6 +13,22 @@ public interface TemplateTagJpaRepository extends TemplateTagRepository, JpaRepo List findAllByTemplate(Template template); + @Query(""" + SELECT tt, t + FROM TemplateTag tt + JOIN FETCH tt.tag t + WHERE tt.id.templateId = :templateId + """) + List findAllByTemplateId(Long templateId); + + @Query(""" + SELECT tt, t + FROM TemplateTag tt + JOIN FETCH tt.tag t + WHERE tt.id.templateId in :templateIds + """) + List findAllByTemplateIdsIn(List templateIds); + @Query(""" SELECT DISTINCT tt.id.tagId FROM TemplateTag tt diff --git a/backend/src/main/java/codezap/tag/repository/TemplateTagRepository.java b/backend/src/main/java/codezap/tag/repository/TemplateTagRepository.java index e1f47840f..0d2129283 100644 --- a/backend/src/main/java/codezap/tag/repository/TemplateTagRepository.java +++ b/backend/src/main/java/codezap/tag/repository/TemplateTagRepository.java @@ -9,8 +9,12 @@ public interface TemplateTagRepository { List findAllByTemplate(Template template); + List findAllByTemplateId(Long templateId); + List findDistinctByTemplateIn(List templateIds); + List findAllByTemplateIdsIn(List templateIds); + TemplateTag save(TemplateTag templateTag); List saveAll(Iterable entities); diff --git a/backend/src/main/java/codezap/tag/service/TagService.java b/backend/src/main/java/codezap/tag/service/TagService.java index cc7408527..c82ac66f6 100644 --- a/backend/src/main/java/codezap/tag/service/TagService.java +++ b/backend/src/main/java/codezap/tag/service/TagService.java @@ -52,6 +52,17 @@ public List findAllByTemplate(Template template) { .toList(); } + public List findAllByTemplateId(Long templateId) { + return templateTagRepository.findAllByTemplateId(templateId).stream() + .map(TemplateTag::getTag) + .toList(); + } + + public List getAllTemplateTagsByTemplates(List