Skip to content

Commit 63f426c

Browse files
committed
fix: 유저 정보 조회 수정
- 캐싱된 데이터는 업데이트가 안되던 오류 수정
1 parent efd3541 commit 63f426c

File tree

4 files changed

+25
-3
lines changed

4 files changed

+25
-3
lines changed

src/main/java/org/dfbf/soundlink/domain/user/repository/UserRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.dfbf.soundlink.domain.user.entity.User;
44
import org.dfbf.soundlink.domain.user.repository.dsl.UserRepositoryCustom;
5+
import org.springframework.cache.annotation.CachePut;
56
import org.springframework.data.jpa.repository.JpaRepository;
67

78
import java.util.Optional;

src/main/java/org/dfbf/soundlink/domain/user/repository/dsl/UserRepositoryCustom.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ public interface UserRepositoryCustom {
1515
String findPasswordByLoginId(String loginId);
1616

1717
Optional<User> findByUserIdWithCache(Long userId);
18+
19+
User saveWithCache(User user);
1820
}

src/main/java/org/dfbf/soundlink/domain/user/repository/dsl/UserRepositoryImpl.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.dfbf.soundlink.domain.user.entity.QProfileMusic;
99
import org.dfbf.soundlink.domain.user.entity.QUser;
1010
import org.dfbf.soundlink.domain.user.entity.User;
11+
import org.springframework.cache.annotation.CachePut;
1112
import org.springframework.cache.annotation.Cacheable;
1213
import org.springframework.stereotype.Repository;
1314

@@ -16,8 +17,8 @@
1617
@Repository
1718
@RequiredArgsConstructor
1819
public class UserRepositoryImpl implements UserRepositoryCustom {
19-
private final JPAQueryFactory jpaQueryFactory;
2020

21+
private final JPAQueryFactory jpaQueryFactory;
2122

2223
@Override
2324
public UserMyPageDto findUserMyPageDtoByUserId(Long userId) {
@@ -46,8 +47,8 @@ public Optional<UserMyPageDto> findUserMyPageDtoByLoginId(String loginId) {
4647
QUser.user.loginId,
4748
QUser.user.nickname,
4849
QSpotifyMusic.spotifyMusic.spotifyId,
49-
QSpotifyMusic.spotifyMusic.artist,
5050
QSpotifyMusic.spotifyMusic.title,
51+
QSpotifyMusic.spotifyMusic.artist,
5152
QSpotifyMusic.spotifyMusic.albumImage
5253
))
5354
.from(QUser.user)
@@ -75,4 +76,21 @@ public Optional<User> findByUserIdWithCache(Long userId) {
7576
.where(QUser.user.userId.eq(userId))
7677
.fetchOne());
7778
}
79+
80+
@Override
81+
@CachePut(value = "user", key = "#user.userId")
82+
public User saveWithCache(User user) {
83+
jpaQueryFactory
84+
.update(QUser.user)
85+
.set(QUser.user.nickname, user.getNickname())
86+
.set(QUser.user.socialType, user.getSocialType())
87+
.set(QUser.user.socialId, user.getSocialId())
88+
.set(QUser.user.loginId, user.getLoginId())
89+
.set(QUser.user.password, user.getPassword())
90+
.set(QUser.user.email, user.getEmail())
91+
.where(QUser.user.userId.eq(user.getUserId()))
92+
.execute();
93+
94+
return user; // 저장 후 바로 캐싱
95+
}
7896
}

src/main/java/org/dfbf/soundlink/domain/user/service/UserService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.dfbf.soundlink.global.exception.ErrorCode;
2525
import org.dfbf.soundlink.global.exception.ResponseResult;
2626
import org.springframework.beans.factory.annotation.Value;
27+
import org.springframework.cache.annotation.CachePut;
2728
import org.springframework.data.redis.core.RedisTemplate;
2829
import org.springframework.http.ResponseCookie;
2930
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -106,7 +107,7 @@ public ResponseResult updateUser(Long userId, UserUpdateDto userUpdateDto) {
106107
}
107108

108109
profileMusicRepository.save(user.getProfileMusic());
109-
userRepository.save(user);
110+
userRepository.saveWithCache(user);
110111

111112
return new ResponseResult(ErrorCode.SUCCESS);
112113
} catch (NoUserDataException e) {

0 commit comments

Comments
 (0)