에러 - DefaultSerializer requires a Serializable payload but received an object of type

박상훈·2024년 8월 8일

에러 로그

목록 보기
4/13

에러 발생 원인

@Cacheable 어노테이션을 사용해 메서드의 결과를 캐싱할 때 반환되는 객체가 직렬화(serializable)되지 않아 발생하였다.

@Cacheable(cacheNames = "orderCache", key = "args[0]")
public OrderResponseDto getOrder(Long orderId) {
    Order order = orderRepository.findById(orderId)
           .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Order not found"));

    return order.toResponseDto();
    }

해결 방법

위 메서드의 반환 타입인 OrderResponseDto 객체에 implements Serializable을 붙여 해결한다.

public class OrderResponseDto implements Serializable {

    private Long orderId;
    private List<Long> productIds;

}
profile
안녕하세요

0개의 댓글