Database ( DB )/ibatis, mybatis

[ibatis]JavaBeansDataExchange could not instantiate result class

노루아부지 2020. 1. 30. 09:10

ibatis에서 객체를 초기화 할 때 생기는 예외입니다.

 

저같은 경우는 xml에서 select문을 사용할 때 resultClass="java.util.Map" 으로 사용했는데

아래와 같이 Cause가 발생했습니다.

 

Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate result class.

Cause: java.lang.InstantiationException: java.util.Map

 

이 경우 resultClass="java.util.HashMap" 으로 변경해주면 해결됩니다.

 

인터페이스 자체를 사용하기 위해서는 그 자체를 구현해주는 클래스로 선언을 해야 하는데 Map은 인터페이스이기 때문에 Map으로 선언해버리면 초기화를 거치지 않고 인터페이스에 직접 접근을 했기 때문에 사용할 수 없는 것이라고 합니다.

 

 

728x90
loading