티스토리 뷰

 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
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함