본문 바로가기

스프링부트 관련(spring boot, mybatis)

[spring boot] post request에 DTO 사용할때 데이터 넣어도 null 발생

	@PostMapping
	public ResponseEntity<Void> saveGame(@Validated @RequestBody GameDto.Request gameDto) {
		gameService.saveGame(gameDto);
		return ResponseEntity.status(HttpStatus.CREATED).build();
	}

위와같이 컨트롤러를 구현한 뒤 postman을 사용해 post request를 요청해 주었는데, 자꾸 데이터가 null로 나오는 문제가 발생했다. 도대체 왜이러나 하면서 빼먹은 부분이 있는지 생각해봤다.

 

이유는 바로 DTO에 setter가 없었던 것이였다. 데이터를 setter를 이용해 객체를 넣기 때문에 setter가 없으면 값을 할당하지 못해 null이 나오는 것으로 생각된다. lombok 사용하면 @Setter로 간단하게 추가할 수 있다.

 

더불어, swagger에도 setter를 추가하기 전까지는 post request 양식이 보이지 않았으나, setter를 추가하니 기본 양식이 추가된 것을 확인할 수 있었다.