Skip to content

Commit beeb944

Browse files
authored
Merge pull request #286 from prgrms-web-devcourse-final-project/feat/#284
[Concert] 공연 상세 캐스팅 문제 해결
2 parents 07e8cd0 + ee341a1 commit beeb944

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

src/main/java/com/back/web7_9_codecrete_be/domain/concerts/dto/concert/ConcertDetailResponse.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
88
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
99
import io.swagger.v3.oas.annotations.media.Schema;
10-
import lombok.AllArgsConstructor;
1110
import lombok.Getter;
12-
import lombok.RequiredArgsConstructor;
1311
import lombok.Setter;
1412

1513
import java.time.LocalDate;

src/main/java/com/back/web7_9_codecrete_be/domain/concerts/repository/ConcertRedisRepository.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.back.web7_9_codecrete_be.domain.concerts.dto.concert.ConcertItem;
55
import com.back.web7_9_codecrete_be.domain.concerts.dto.concert.ListSort;
66
import com.back.web7_9_codecrete_be.domain.users.entity.User;
7+
import com.fasterxml.jackson.databind.ObjectMapper;
78
import lombok.RequiredArgsConstructor;
89
import lombok.extern.slf4j.Slf4j;
910
import org.springframework.data.domain.Pageable;
@@ -20,6 +21,7 @@
2021
public class ConcertRedisRepository {
2122
private final RedisTemplate<String, String> redisTemplate;
2223
private final RedisTemplate<String, Object> objectRedisTemplate;
24+
private final ObjectMapper objectMapper;
2325

2426
private static final String LOCK_FLAG_PREFIX = "initLoad:";
2527

@@ -88,10 +90,12 @@ public ConcertDetailResponse getCachedConcertDetail(Long concertId) {
8890
return concertDetailResponse;
8991
}
9092

93+
// 공연 상세 정보를 Redis에서 가져오기
9194
private ConcertDetailResponse getConcertDetailResponse(long concertId) {
92-
ConcertDetailResponse concertDetailResponse = (ConcertDetailResponse) objectRedisTemplate.opsForValue().get(CONCERT_DETAIL_PREFIX + concertId);
93-
if (concertDetailResponse == null) return null;
94-
return concertDetailResponse;
95+
Object rawObject = objectRedisTemplate.opsForValue().get(CONCERT_DETAIL_PREFIX + concertId);
96+
if (rawObject == null) return null; // null이라면 null 반환
97+
if(rawObject instanceof ConcertDetailResponse) return (ConcertDetailResponse) rawObject; // ConcertDetailResponse라면 다운캐스팅
98+
return objectMapper.convertValue(rawObject, ConcertDetailResponse.class); // 아니라면 매퍼 사용 클래스 변환
9599
}
96100

97101
// 공연 상세 삭제

0 commit comments

Comments
 (0)