EventController의 update에서 eventDto -> event로 mapping하는 방법 질문
265
작성한 질문수 9
안녕하세요.
ModelMapper 관련 문의 드립니다.
(강의 본론을 좀 벗어난것 같긴한데 답변해 주실 줄 믿습니다. 감사합니다. 꾸벅)
EventController의 update method에서 사용자로 부터 전달받은 eventDto에 값이 일부만 들어있는 경우 (예, name만 update하고 싶은 경우에 body로 아래와 같이 보내려고 합니다) 일일이 노가다하지 않고 처리할 수 있는 방법이 있을까요.
-- 아래 --
{
"name" : "Updated Event"
}
--------
이 경우 나머지 컬럼은 null이어서 validation에 걸립니다.
원하는 것은 나머지 컬럼은 기존값을 그대로 갖는 거예요.
@PutMapping("/{id}")
public ResponseEntity update(@PathVariable Integer id,
@Valid @RequestBody EventDto.CreateOrUpdate eventDto,
BindingResult errors,
@CurrentUser User currentUser) {
if (errors.hasErrors()) {
return badRequestResponse(errors);
}
Optional<Event> byId = this.eventRepository.findById(id);
if (!byId.isPresent()) {
return notFoundResponse();
}
Event event = byId.get();
if (currentUser != null && !currentUser.equals(event.getManager())) {
return new ResponseEntity(HttpStatus.FORBIDDEN);
}
modelMapper.map(eventDto, event);
event.update();
eventValidator.validate(event, errors);
if (errors.hasErrors()) {
return badRequestResponse(errors);
}
eventRepository.save(event);
EventModel eventModel = new EventModel(event);
eventModel.add(linkToDelete(event));
eventModel.add(linkToProfile("resources-events-update"));
return ResponseEntity.ok().body(eventModel);
}
답변 1
0
문서 맨 아래 코드를 참고하세요. (근데 저라면 저렇게까지 안하고 그냥 DTO를 바꾸거나 직접 값을 옮겨주는 코드를 작성하겠습니다.)
http://modelmapper.org/user-manual/property-mapping/
Spring 시큐리티 관련해서 WebSecurityConfigurationAdapter
0
73
1
junit5 사용하시는 분들
0
88
1
자바 빈 스펙을 준수하는지 체크하는 테스트
0
236
2
REST API 개발 중 비즈니스 로직 적용 부분의 JSON 에러
0
243
1
스프링 부트 3버전에서의 실습
0
190
1
java.lang.AssertionError: Status
0
532
2
spring doc 관련 파일 생성 관련 배포 관련 질문 드립니다.
0
287
1
섹션2 201응답받기 부분 테스트 404에러 질문입니다
0
741
1
강의 자료가 404입니다 확인 부탁 드려요!
0
477
1
연동 DB문의
0
358
1
이벤트 Repository강의 중 Event 클래스에 private Integer Id; 위치 질문
0
505
1
(Mac) postgressql 관련하여 port kill 해도 다시 살아나는 경우
0
380
0
maven으로 생성한 docs파일(index.html)에서의 not found 오류 질문
0
621
1
테스트 오류 질문드립니다.
0
512
1
docs 요청값이 반영이 안되네요... (해결)
-1
394
1
psql 적용 후 에러
0
818
2
mvn package 시 다음과 같은 에러가 나시면
0
765
2
Event에 Account manager를 추가했으면 문서화 필요
0
274
1
2년 훨씬 전 부터 Restlet-> Talend API 로 바뀌었습니다~
1
473
1
asciidoc 추가 스니펫 에러 해결법
0
400
1
_links 는 현재 fieldWithPath 를 해주지 않아도 됩니다.
0
424
3
깃랩 처음 사용자를 위한 index.adoc raw 보는 법
0
332
1
eclipse 쓰시는 분을 위한 maven-resources-plugin 팁
0
333
1
부트 + jupiter 인 경우 설정법
0
342
1





