작업하면서 배우는 것들

ObjectMapper 에서 Long 이나 Integer 등 Wrapper 타입 맵핑이 안됨

Jungsoomin :) 2020. 12. 22. 17:56

@Entity 클래스에 보통 id 값을 Long 으로 잡는데 이럴때 ObjectMapper가 Long 컨버팅 안됨. 아무튼 안됨

할때가 있다. (String.valueOf() 는..? 했었음.)

 

이때는 제네릭 타입을 정확히 잡아주는 TypeReference<T> 를 사용하자.

 

@GetMapping("/account/find/{id}")
    public Map<String,String> findAccount(@PathVariable Long id){
        try {
            Account account = accountService.processFindAccount(id);
            Map<String, String> stringStringMap = new ObjectMapper().convertValue(account,
                    new TypeReference<Map<String, String>>() {
                    });
            log.warn(stringStringMap.toString());
            return stringStringMap;
        }catch (Throwable ex) {
            Map<String,String > result = new HashMap<>();
            result.put("Exception",ex.getMessage());
            return result;
        }
    }

 

기가 맥히게 잘 돌아간다.