티스토리 뷰
Spring개발을 하면서 @RestController인 Controller에서 @PostMapping으로 Post요청을 받을 때 문제가 생겼습니다.
분명히 select m from Member m where m.nickname = :nickname 쿼리에서 결과 로우가 한 개 나와야 하는데 0개로 나오는 문제였습니다. findAll()을 사용한 경우 결과 로우가 나오는 것을 봤을 때, 쿼리가 잘못 되었거나 파라미터 변수에 잘못된 값이 들어온 것이라는 두 가설을 세웠습니다.
아래는 결론입니다.
보통 VO객체를 사용하기 때문에
이런 식으로 만든 경우, 자동으로 MemberVO에 JSON형식이 매핑되었습니다.
하지만 Post요청에서 String형 하나만 보내는 경우, String으로 받는다면 '{"name": "gildong"}' 처럼 JSON형식이 딕셔너리의 모습을 한 String형으로 파싱되어서 들어오게 됩니다.
위 사진과 같이 Map<String, String>형으로 받은 후, get메서드를 통해 nickname을 사용하는 방법을 통해 해결하였습니다.
728x90
반응형
'개발 > Spring' 카테고리의 다른 글
[에러 해결] No serializer found for class (0) | 2021.08.14 |
---|---|
[에러 해결] HttpMediaTypeNotAcceptableException (1) | 2021.08.14 |
[에러 해결] InvalidDataAccessApiUsageException (1) | 2021.07.25 |
@RequestParam과 @PathVariable (0) | 2021.07.24 |
[에러 해결] UnsatisfiedDependencyException (0) | 2021.07.24 |
댓글