기본 값이 설정된 dataclass 를 MapStruct 를 통해 매핑하면 값이 제대로 할당되지 않는 문제
버그
(필수) 요약
- 기본 값이 설정되고 immutable한 프로퍼티를 정의한 데이터 클래스에 MapStruct 를 통해 매핑 코드를 생성하면 최소 인수 생성자가 사용되어 제대로 값 매핑이 되지 않는 문제
- 이를 해결하려면 다음과 같은 방법을 사용 가능
- 모든 필드를 val 이 아닌 var 로 정의하여 setter 오픈
- 모든 필드에 대해 기본 값을 할당하지 않고 단 하나의 생성자를 사용하게 유도
- 필수 값에 대해 val 로 정의하고 optional 값은 var 로 정의하여 setter 오픈?
- POJO 형태로 직접 매핑 코드 작성
(필수) 재현 단계
- 모든 필드가 optional 인 dataclass 에 MapStruct 를 통해 매핑 시도
(필수) 예상되는 올바른 동작
- 정상적으로 값 복제
(필수) 버그로 추측되는 현재 동작
- optional 필드에는 값이 할당되지 않음
(선택) 관련 로그 및 스크린샷
- https://github.com/mapstruct/mapstruct/issues/2281
- https://github.com/mapstruct/mapstruct/issues/3088
- https://github.com/mapstruct/mapstruct/issues/2378
- https://github.com/mapstruct/mapstruct/issues/1672