이슈
- MapStruct 사용시 Problem Entity에서 ProblemResponseDto로 변환하고, 변환한 DTO를 찍어보니, problemTagList가 매핑이 제대로 안되는 이슈가 발생했다.
- 테스트 코드에서도 NPE가 발생하여 원인을 찾아보니, MapperImpl은 내부에서 매핑할 때 다음과 같이 로직을 수행한다.
ProblemMapperImpl.java
@Override
public Problem toEntity(ProblemRequestDto requestDto) {
if ( requestDto == null ) {
return null;
}
ProblemBuilder problem = Problem.builder();
problem.title( requestDto.getTitle() );
problem.link( requestDto.getLink() );
problem.level( requestDto.getLevel() );
return problem.build();
}
- getter,setter를 사용하여 객체간 매핑을 지원하기 때문에 소스에는 @Getter를, 타켓에는 @Setter를 설정해야 하는 것이다.
해결
- ProblemTag에 @Getter를 설정하였다.
'🍃Spring' 카테고리의 다른 글
[Spring Boot] @ResponseStatus와 ResponseEntity (0) | 2023.02.18 |
---|---|
[Spring Data JPA] 페이징 (0) | 2023.02.16 |
[Spring] 트랜잭션 전파 - REQUIRES_NEW 활용하기 (0) | 2023.02.05 |
[Spring] 트랜잭션 전파 - 2 (0) | 2023.02.05 |
[Spring] 트랜잭션 전파 - 1 (0) | 2023.02.05 |