인프런 커뮤니티 질문&답변

최민호님의 프로필 이미지
최민호

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

JPA를 이용한 사용자 추가와 삭제 - HTTP POST/DELETE method

사용자 등록하고 나서 H2 에서 보면 신규 사용자의 password, ssn 이 null 로 되어 있습니다.

작성

·

51

0

POST 로 사용자 등록하는 예제를 수행하고 나서

DB를 조회해보면 password, ssn은 null 로 되어 있습니다. 이유가 뭘까요?

{
        "name": "User4",
        "joinDate": "2024-08-23T23:35:48.706+00:00",
        "password": "test4",
        "ssn": "444444-1111111"
}
image.png

 

 

 

 

답변 2

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

POST를 통해 사용자 등록을 위해 아래와 같은 JSON 데이터를 전송하였을 때, 회원가입을 위한 정보 중 일부가 DB에 등록되지 않은 문제인 것 같습니다.

올려주신 JSON 데이터를 이용하여 http://localhost:8088/jpa/users (DB 저장을 위한 URL)를 실행하였을 때, DB 등록에는 이상이 없는 것 같습니다. 소스 코드를 직접 구현하신 거라면 password, ssn 2개의 필드가 정의 된 Users 클래스나 다른 서비스 클래스 등에 오타가 없는 확인해 보시면 좋을 것 같습니다. 혹시 github에 공유 된 소스코드를 그대로 실행하였을 때도 동일한 문제라면 다시 한번 글 남겨주시기 바랍니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

최민호님의 질문에 답변 드리겠습니다.

POST로 사용자 등록 시 passwordssnnull로 되어 있는 현상에는 여러 가지 원인이 있을 수 있습니다. 가장 흔한 원인으로는 해당 필드들이 @Entity 선언 시 제외되었거나, DTO(Data Transfer Object)를 사용하여 데이터를 받고 이를 엔티티로 변환하는 과정에서 해당 필드들을 포함시키지 않은 경우입니다. 또는, JPA의 @Column 어노테이션 등을 통해 해당 필드가 데이터베이스에 매핑되지 않도록 설정되었을 수도 있습니다.

이 문제를 해결하려면 다음과 같은 점을 확인하시기 바랍니다:

  1. 엔티티 클래스에서 passwordssn 필드가 올바르게 선언되었는지 확인하세요.
  2. 엔티티 클래스의 해당 필드들이 데이터베이스 열과 매핑되도록 @Column 등의 어노테이션이 정확히 사용되었는지 확인하세요.
  3. 데이터 전송에 사용되는 DTO가 있다면, passwordssn을 포함하고 있는지와, 이를 엔티티로 변환할 때 해당 필드들이 올바르게 복사되는지 확인하세요.
  4. 사용하는 데이터베이스 기술(여기서는 H2)과 JPA 설정이 올바른지 확인하세요.

위 항목들을 체크해보시고, 해당 문제가 해결되지 않는다면 구현한 코드의 상세한 부분을 다시 한번 검토해보셔야 할 것 같습니다.

최민호님의 프로필 이미지
최민호

작성한 질문수

질문하기