작성
·
9
0
GenericJackson2JsonRedisSerializer를 사용할 때 저장되는 캐싱 데이터는 다음과 같았습니다.
"[{\"@class\":\"org.example.package..\",\"id\":\"123984\",\"title\":\"title0123984\",...,
강의상에 나온 데이터 순서?? 와는 조금 다르게 package 다음에 @class 이후 데이터가 저장되는 구조가 나오는 것을 확인했습니다.
이때 캐싱된 데이터를 조회하려고 하는데
com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected VALUE_STRING: need String, Number of Boolean value that contains type id (for subtype of java.lang.Object)
에러가 발생했습니다.
너무 궁금해서 GenericJackson2JsonRedisSerializer에 대해서 알아보고 있는데, 여전히 에러가 발생하는 이유를 잘 모르겠습니다ㅜㅜ
데이터가 캐싱되어서 저장될 때 구조가 다르게 들어가는 이유가 궁금합니다
아 물론 강의 후반부처럼 Jackson2JsonRedisSerializer를 사용했을 때는 정상적으로 동작했습니다.
답변 1
0
안녕하세요 YEN님! 좋은 질문 해주셨네요ㅎㅎ
직렬화, 역직렬화 클래스마다 각기 다른 특징을 가지고 있습니다.
GenericJackson2JsonRedisSerializer
는
@class
의 key 값이 추가로 들어가는 방식으로 구성되어 있기 때문입니다.
ChatGPT의 답변이 꽤나 정확하고 디테일해서 ChatGPT 답변도 같이 첨부드릴게요:)
https://chatgpt.com/share/676b45ae-fc64-8003-b383-88a587fd09d5
혹시 위 설명 읽어보시고 이해 안 되시는 점 있으시면 추가로 또 질문 남겨주세요~!!