728x90
반응형
Mapstruct에서 @Mapping 사용 시 source와 target에서 필드값들을 매핑할 때, "the type of parameter has no property named" 에러가 나는 경우가 있다. 이것은 source와 target 경로 지정 시, Collection 타입이 아닌 부분을 조회하여 발생했을 수 있다. 이것은 마치 List 타입 내부의 size를 알 수 없는 객체들을 또 다른 size를 알 수 없는 List의 객체들로 매핑하는 것이 되기 때문이다.
요약하자면 아래 그림과 같다.
그럼 어떻게 해야할까?
general 객체용 Mapper를 하나 만들어서 매핑하고, Soldier 객체용 Mapper를 만들어서 매핑을 반복적으로 수행한 뒤, 최종 general 객체로 합치면 된다.
정확한 방법은 아닐 수 있다. 그냥 내가 해결한 방법...
참조
1. stackoverflow
728x90
반응형
'Programming-[Backend] > SpringBoot' 카테고리의 다른 글
[TIL][링크] MapStruct 라이브러리 - @AfterMapping (0) | 2021.12.08 |
---|---|
[TIL][링크] messageSource application.yml 설정 옵션 (0) | 2021.12.07 |
[링크][중요] Mapstruct 라이브러리, DTO와 Entity 검증의 주체가 되야하는 부분 (0) | 2021.09.12 |
[TIL][중요]Entity의 필드값 변경은 Service가 아닌 Entity에서 처리 (2) | 2021.08.26 |
[TIL] Unique Id 아닌 값을 바탕으로 조회 및 update 할 때, findTopBy (0) | 2021.06.29 |