Programming-[Backend]/SpringBoot

[TIL] Mapstruct - @Mapping 시 List의 필드값, the type of parameter has no property named

컴퓨터 탐험가 찰리 2021. 9. 13. 20:38
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

https://stackoverflow.com/questions/57255504/java-mapstruct-mapping-a-field-inside-related-collection

 

728x90
반응형