From d7042ed02070e4e0b1b026aa4ef1cb1c596d47b5 Mon Sep 17 00:00:00 2001 From: oznchex <114240463+oznchex@users.noreply.github.com> Date: Sat, 17 Aug 2024 23:16:06 +0900 Subject: [PATCH] =?UTF-8?q?refactor=20:=20=EC=B2=A8=EB=B6=80=20URL=20?= =?UTF-8?q?=EC=A0=84=EC=B2=B4=20=EC=A1=B0=ED=9A=8C=20QueryDSL=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../linkit/global/config/QueryDSLConfig.java | 2 ++ .../attach/AttachUrlRepository.java | 6 +----- .../attach/AttachUrlRepositoryCustom.java | 9 ++++++++ .../attach/AttachUrlRepositoryCustomImpl.java | 21 +++++++++++++++++++ .../linkit/profile/service/AttachService.java | 2 -- 5 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustom.java create mode 100644 src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustomImpl.java diff --git a/src/main/java/liaison/linkit/global/config/QueryDSLConfig.java b/src/main/java/liaison/linkit/global/config/QueryDSLConfig.java index 15fcde5e..5a5f53d1 100644 --- a/src/main/java/liaison/linkit/global/config/QueryDSLConfig.java +++ b/src/main/java/liaison/linkit/global/config/QueryDSLConfig.java @@ -2,6 +2,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -10,6 +11,7 @@ @Configuration public class QueryDSLConfig { + @PersistenceContext private final EntityManager entityManager; @Bean diff --git a/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepository.java b/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepository.java index 806a6542..29535114 100644 --- a/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepository.java +++ b/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepository.java @@ -7,18 +7,14 @@ import org.springframework.data.repository.query.Param; import org.springframework.transaction.annotation.Transactional; -import java.util.List; import java.util.Optional; -public interface AttachUrlRepository extends JpaRepository { +public interface AttachUrlRepository extends JpaRepository, AttachUrlRepositoryCustom{ boolean existsByProfileId(final Long profileId); Optional findByProfileId(@Param("profileId") final Long profileId); - @Query("SELECT attachUrl FROM AttachUrl attachUrl WHERE attachUrl.profile.id = :profileId") - List findAllByProfileId(@Param("profileId") final Long profileId); - @Modifying @Transactional @Query("DELETE FROM AttachUrl attachUrl WHERE attachUrl.profile.id = :profileId") diff --git a/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustom.java b/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustom.java new file mode 100644 index 00000000..22a8909d --- /dev/null +++ b/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustom.java @@ -0,0 +1,9 @@ +package liaison.linkit.profile.domain.repository.attach; + +import liaison.linkit.profile.domain.attach.AttachUrl; + +import java.util.List; + +public interface AttachUrlRepositoryCustom { + List findAllByProfileId(final Long profileId); +} diff --git a/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustomImpl.java b/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustomImpl.java new file mode 100644 index 00000000..6f4b0a5c --- /dev/null +++ b/src/main/java/liaison/linkit/profile/domain/repository/attach/AttachUrlRepositoryCustomImpl.java @@ -0,0 +1,21 @@ +package liaison.linkit.profile.domain.repository.attach; + +import com.querydsl.jpa.impl.JPAQueryFactory; +import liaison.linkit.profile.domain.attach.AttachUrl; +import liaison.linkit.profile.domain.attach.QAttachUrl; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +@RequiredArgsConstructor +public class AttachUrlRepositoryCustomImpl implements AttachUrlRepositoryCustom { + private final JPAQueryFactory jpaQueryFactory; + + @Override + public List findAllByProfileId(final Long profileId){ + QAttachUrl attachUrl = QAttachUrl.attachUrl; + return jpaQueryFactory.selectFrom(attachUrl) + .where(attachUrl.profile.id.eq(profileId)) + .fetch(); + } +} diff --git a/src/main/java/liaison/linkit/profile/service/AttachService.java b/src/main/java/liaison/linkit/profile/service/AttachService.java index 6486f782..d880bcec 100644 --- a/src/main/java/liaison/linkit/profile/service/AttachService.java +++ b/src/main/java/liaison/linkit/profile/service/AttachService.java @@ -28,7 +28,6 @@ @Transactional @Slf4j public class AttachService { - private final ProfileRepository profileRepository; private final AttachUrlRepository attachUrlRepository; // private final AttachFileRepository attachFileRepository; @@ -54,7 +53,6 @@ private List getAttachUrls(final Long profileId) { } catch (Exception e) { throw new BadRequestException(NOT_FOUND_ATTACH_URLS_BY_PROFILE_ID); } - } // 해당 회원이 1개라도 Attach URL 보유하고 있는지