[Redis] cannot deserialize from Object value

주형(Jureamer)·2023년 10월 16일
0
 (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

Redis로 Cache하는 도중 위와 같은 오류가 발생하였다.

해당 에러는 Jackson 라이브러리가 참조하려는 객체 생성 시 생성자가 필요한데 정보가 없는 경우다.

나 같은 경우는 Builder 패턴을 사용하여 만들어진 객체를 보내다 보니 해당 오류가 났었다.

// 수정 전 코드 (Builder 패턴)
private RowMapper<RankInfo> MalLRankingMapper() {
        return (rs, rowNum) ->
                RankInfo.builder()
                        .id(rs.getLong("id"))
                        .createdDate(rs.getTimestamp("created_date"))
                        .ranking(rs.getInt("ranking"))
                        .foodKeyword(rs.getString("keyword"))
                        .hits(rs.getInt("hits")).build();

해당 코드를 아래와 같이 보내주니 해결 완료!

    private RowMapper<RankInfo> MalLRankingMapper() {
            return (rs, rowNum) -> {
                RankInfo rankInfo = new RankInfo();
                rankInfo.setId(rs.getLong("id"));
                rankInfo.setCreatedDate(rs.getTimestamp("created_date"));
                rankInfo.setRanking(rs.getInt("ranking"));
                rankInfo.setFoodKeyword(rs.getString("keyword"));
                rankInfo.setHits(rs.getInt("hits"));
                return rankInfo;
        };
    }
profile
작게라도 꾸준히 성장하는게 목표입니다.

0개의 댓글