❗오류
ToDoApp을 만들어보던 중
Mapper 인터페이스에 MapStruct를 적용하여 mapperImpl을 구현하려고 하니
다음과 같은 오류가 발생하며, 빈 DTO와 Entity를 반환하였다.
reason: actual and formal argument lists differ in length
이와 비슷한 오류는 전에도 발생하였으며 Getter와 Setter애너테이션을 삭제하고 직접 코드로 작성하여 해결한 적이 있었다. 이번에는 좀 더 근본적인 원인을 찾아 해결해 보고 싶어 구글링을 해보았다.
❗원인
Mapstruct는 우선 순위가 높은 순으로 구현함
MapStruct에서 @AllArgsConstructor, @Setter를 사용하는데 있어 Lombok이 정상적으로 작동하지 않고 있다고 추측
- build.gradle 에서 dependencies는 위에서부터 순서대로 실행된다
- Lombok이 MapStruct보다 윗줄에 있어야 함
👏🏻해결방법
따라서 다음과 같이 lombok의 위치를 mapstruct 위로 올려주었다!
MapperImpl이 정상적으로 구현되며 해결완료!
😎그 외 시도했던 방법들
먼저 Setting -> Annotation Processors -> Enable annotation processing 체크 적용 해주는 방법이었다.
그러나 해결되지 않았다.
다음으로 시도한것은
Setting > Build,Execution,Deployment > Build Tools > Gradle에서
Build and run using과 Run tests using의 설정을 Gradle에서 Intellij IDEA로 바꿔주는 것이다.
역시 해결되지 않았다.
참고한 자료
'Error' 카테고리의 다른 글
[BigDecimal] java 소숫점 계산 정확하게 하기 (4) | 2023.01.19 |
---|---|
[IllegalArgumentException] urlTemplate not found (0) | 2023.01.17 |
E2C 인스턴스 연결 후 bash shell에서 git clone 시 실패하는 오류 (0) | 2022.12.02 |
wls에서 gui로 바로열기 (2) | 2022.11.18 |
Spring - @MapStruct로 MapperImpl생성 시 입력값으로 null이 들어오는 오류 (0) | 2022.10.31 |