inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

15강. 유저 업데이트 API, 삭제 API 예외 처리 하기

사용자 이름 수정에서 막힙니다

440

hope

작성한 질문수 5

1

강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다.

Controller

@PutMapping("/user")
public void updateUserName(@RequestBody UpdateUserDto updateDto) {
    userService.updateUserName(updateDto.getId(), updateDto.getName());
}

Dto

public class UpdateUserDto {

    private long id;
    private String name;

    public long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

Repository

@Override
public void updateUserName(long id, String name) {
    String sql = "update user set name = ? where id = ?";
    jdbcTemplate.update(sql, name, id);
}

Service

@Override
public void updateUserName(long id, String name) {
    userRepository.updateUserName(id, name);
}

 

수정을 눌렀을 때 name은 정상적으로 값이 넘어오는데 id가 계속 0으로 넘어옵니다,,

등록 시에는 DB에 id가 정상적으로 입력되고 있는데 뭐가 문제일까요?

java spring aws mysql spring-boot jpa

답변 2

2

최태현

안녕하세요 hope님!! 남겨주신 코드를 확인해보았을 때 모두 정상적으로 작성해주신 것 같아요!!!

@RequestBody 도 잘 작성해주셨고~ DTO도 잘 만들어주셔서 id 가 넘어오지 않을리가 없을 것 같은데 이상하군요!!

제공되는 웹 UI를 사용하고 계신 상황에서, Controller로 넘어온 DTO의 id 를 가져오니 0이 찍힌다 라는 말씀이시죠~~

 

음.. 그렇다면 한 가지 의심해볼만한 내용은 GET API 에서 id 를 정상적으로 주고 있는지 확인해봐야 할 것 같습니다!

결국 화면에서는 GET을 통해 넘어온 id를 다시 넘길 뿐이라서 만약 GET API에서 id를 모두 0으로 주고 있다거나 하는 에러가 있다면, PUT API까지 영향을 줄 수 있을 것 같아요!

 

또한, 브라우저의 개발자 도구 > Network를 확인해보시면, 화면에서 서버로 데이터를 어떻게 전달하고 있는지 확인해보실 수도 있답니다! 이를 사용하면

  • 클라이언트는 값을 5로 보냈는데 서버가 0으로 받는건지

  • 클라이언트가 값을 0으로 보내서 서버가 0으로 받는건지

구분할 수 있어 보다 정확한 진단을 하실 수 있을 거에요!

 

꼭 해결되셨으면 좋겠습니다~ 감사합니다! 🙏🙏

1

hope

방금 해결했습니다..!

개발자모드에서 넘어가는 값 확인해보니까 id가 null로 넘어가고 있었네요.

감사합니다.

0

비둘기

동일한 오류 있었는데 질문 남겨주신 덕분에 해결할 수 있었습니다. 감사합니다.

리액트 관련 질문이 있습니다.

0

62

2

스프링부트 버전

0

67

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

55

2

33강. UserLoanHistory의 관계성에 대한 질문

1

52

2

Java JDK 버전 문의의 건

0

128

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

82

3

h2 console 접속했을 테이블 질문

1

63

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

72

2

15강. updateUser() 질문

0

51

2

깃허브 질

0

79

2

여기까지 다 끝냈다고 하셨는데

0

76

2

왜안될까요

0

68

2

MySQL 창이안ㄴ뜹니다

0

54

2

포스트맨

0

47

1

spring 개념적인 질문

0

69

2

인텔리제이 샘플코드 실행 안됨 오류

0

138

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

81

1

마이그레이션 오류입니다.

0

166

3

Whitelabel Error Page 오류가 났습니다.

0

157

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

89

3

궁금한게 있습니다.

0

55

2

DTO 관련

0

67

2

궁금한게 있습니다!

0

62

2

35강에서 returnBook 에서 userLoanHistory 값 중복에 관하여

0

54

2