
org.apache.ibatis.reflection.ReflectionException: Error instantiating class … with invalid types (…) or values (…). Cause: java.lang.IllegalArgumentException: argument type mismatch”
Mybatis로 DB에 접근해서 객체로 결과를 받으려고 하는 경우, 해당 엔티티(또는 DTO)에 기본 생성자가 선언되어 있는지 체크해보자
예를 들어, PostDTO로 게시물 조회 결과를 받으려고 하면, PostDTO 클래스에 기본 생성자가 선언되어 있거나, 롬복 애노테이션인 @NoArgsConstructor가 선언되어 있는지 확인하자
이 기본 생성자가 없으면 argument type mismatch 에러가 발생한다
기본 생성자를 이용해 객체를 생성하고, reflection으로 필드를 주입한다.
그래서 기본 생성자를 선언해놓지 않으면 위 과정이 진행되지 않아 이런 에러가 발생한다!
| 기본 생성자 또는 @NoArgsConstructor를 선언해놓자!