멋쟁이 사자처럼 종합 프로젝트 진행 중 반려동물 정보 수정 기능을 구현하던 중
The given id must not be null 에러가 발생
프론트엔드에서 반려동물 정보 수정 요청을 보낼 때,
클라이언트에서는 ID값이 정상정으로 표시되었지만
서버에서는 null로 받아지는 에러가 발생했다.
@PatchMapping("/pets")
public GlobalResponse<Void> modifyMyPetInfo(@LoginUser Member member,
@ModelAttribute ModiPetInfoRequest modiPetInfoRequest) {
System.out.println("==================="+ modiPetInfoRequest.getId()); // null 출력
animalService.modifyMyPetInfo(member, modiPetInfoRequest);
return GlobalResponse.success();
}
@ModelAttribute 어노테이션은 폼 데이터를 자바 객체에 바인딩할 때
기본 생성자를 사용해 객체를 생성한 후, setter 메서드를 통해 값을 바인딩 한다.
따라서 setter가 없으면 값이 저장되지 않기 때문에 발생한 문제였다.
@Getter
@Setter // 추가
@NoArgsConstructor
@AllArgsConstructor
public class ModiPetInfoRequest {
private Long id;
private String estimatedAge;
private String feature;
@Enumerated(EnumType.STRING)
private AnimalSize size;
private String registrationNo;
private MultipartFile imageFile;
private String healthCondition;
}
ModiPetInfoRequest 클래스에 setter를 추가하여 문제를 해결했다!
| 공공 API 사용 시 "등록되지 않은 인증키 입니다. " 에러 해결 (0) | 2025.03.04 |
|---|---|
| JWT 토큰 갱신이 작동하지 않은 문제, ddl-auto=create (0) | 2025.02.26 |
| 소셜 로그인시 브라우저에 accessToken 토큰이 발행되지 않음 (0) | 2025.02.24 |
| @ConfigurationProperties를 사용할 때 "No setter found for property" 에러 발생 (0) | 2025.02.24 |
| VmmemWSL 메모리 과잉 할당 문제 (0) | 2025.02.13 |