-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
문제
List<Map<String, Objet> 로 받아오면 잘 받아와짐
근데 List<Entity> 형식으로 받아오면 난데없는 IndexOutOfBoundsException 이 발생
해결
마이바티스의 resultMap, resultType에 대한 이해가 필요함
Entity에 인자없는 생성자가 필요함
아래 링크에 따르면
이는 resultMap의 특성 때문인데, 해당 기능을 사용할 경우 (+resultType 을 사용할 때 객체를 넘겨줄 경우 동일하다.) Mybatis가 미리해당 인스턴스를 생성하게 된다. 하지만 위의 엔티티는 모든 인자가 포함된 생성자 (Builder) 만이 존재하기 때문에 인스턴스를 생성할 수 없어 문제가 발생하게 되는 것이다.
출처: https://lob-dev.tistory.com/35 [Lob!]
라고 하는데 이해가 안감
마이바티스가 미리 해당 인스턴스를 생성하는거랑 인자없는 생성자 연관관계가 있다면
인자없는 생성자를 생성해서 setter로 데이터를 지정하는 줄 알았는데
setter가 없어도 잘 select해오기 때문에 그것도 아님
하지만
mybatis/mybatis-3#1567 (comment)
위 마이바티스 리포 이슈에도 있는데
내가 알아야할건 , MyBatis needs to instantiate the Account object first 이것 뿐인거같다.
instantiate 한다는 말은 인자없이 클래스를 인스턴스화한다는 말인가보다