From 8f9ed39fd19fa1c31913b75d467d934945a44fab Mon Sep 17 00:00:00 2001 From: MODUGGAGI Date: Tue, 16 Dec 2025 01:02:54 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=8C=94=EB=A1=9C=EC=9E=89,=20?= =?UTF-8?q?=EC=96=B8=ED=8C=94=EB=A1=9C=EC=9E=89=20=EB=90=98=EB=A9=B4=20?= =?UTF-8?q?=EC=BA=90=EC=8B=9C=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/command/FollowCommandService.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/novaminds/gradproj/domain/member/service/command/FollowCommandService.java b/src/main/java/novaminds/gradproj/domain/member/service/command/FollowCommandService.java index 2cacb52..159a89e 100644 --- a/src/main/java/novaminds/gradproj/domain/member/service/command/FollowCommandService.java +++ b/src/main/java/novaminds/gradproj/domain/member/service/command/FollowCommandService.java @@ -7,6 +7,8 @@ import novaminds.gradproj.domain.member.entity.Member; import novaminds.gradproj.domain.member.repository.FollowRepository; import novaminds.gradproj.domain.member.repository.MemberRepository; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Caching; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -18,7 +20,11 @@ public class FollowCommandService { private final MemberRepository memberRepository; private final FollowRepository followRepository; - public void following(Member follower, String followingNickName) { + @Caching(evict = { + @CacheEvict(value = "memberInfo", key = "#follower.loginId"), + @CacheEvict(value = "memberInfo", key = "#result.loginId") + }) + public Member following(Member follower, String followingNickName) { Member following = memberRepository.findByNickname(followingNickName) .orElseThrow( @@ -39,9 +45,15 @@ public void following(Member follower, String followingNickName) { .build(); followRepository.save(follow); + + return following; } - public void unfollowing(String followerId, String followingNickname) { + @Caching(evict = { + @CacheEvict(value = "memberInfo", key = "#followerId"), + @CacheEvict(value = "memberInfo", key = "#result") + }) + public String unfollowing(String followerId, String followingNickname) { String followingId = memberRepository.findIdByNickname(followingNickname) .orElseThrow(() -> new GeneralException(ErrorStatus.MEMBER_NOT_FOUND)); @@ -51,5 +63,7 @@ public void unfollowing(String followerId, String followingNickname) { } followRepository.deleteByFollowerLoginIdAndFollowingLoginId(followerId, followingId); + + return followingId; } }