Mybatis argument type mismatch 에러 해결

nick·2024년 4월 23일

DB

목록 보기
2/3

발생한 에러

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를 선언해놓자!

profile
티스토리로 이전 : https://andantej99.tistory.com/

0개의 댓글