2012-07-26 1 views
0

MyBatis에서 여러 커서 값을 읽고 DTO에서이 값을 설정하려고하지만 오류가 발생합니다. 내 SP는 3 개의 커서와 하나의 DTO로 매핑하려고하는 각 커서 값을 반환합니다. 컬렉션 가치를 포함하지 않는 매핑 된 문구 : 예외 : IllegalArgumentException - 코드MyBatis에서 다중 커서 값을 읽고 DTO에서이 값을 설정하려고했지만 오류가 발생했습니다.

AccountDSSpMapper.xml

<resultMap type="com.Role_Test" id="Role"> 
      <result property="roleID" column="Role_ID" /> 
      <result property="accountID" column="Account_ID" /> 
      <result property="roleName" column="Role_Name" /> 
      <result property="roleDesc" column="Description" /> 
</resultMap> 
<resultMap type="com.Feature_Test" id="Feature"> 
      <result property="featureID" column="Feature_ID" /> 
      <result property="featureName" column="Feature_Name" /> 
</resultMap> 
    <resultMap type="com.Privilege_Test" id="Privilege"> 
      <result property="privilegeID" column="Privilege_ID" /> 
      <result property="privilegeName" column="Privilege_Name" /> 
</resultMap> 

<select id="roleResults" resultMap="Role,Feature,Privilege" statementType="CALLABLE"> 
      { call Get_RoleDetails(#{accountID, mode=IN, jdbcType=INTEGER}, #{roleID, mode=IN,  jdbcType=INTEGER})} 
</select> 

AccountDSSpMapper.java

@MapKey("roleResults") 
public List<List<ArrayList<Object>>> getRoleDetails(Integer accountID, Integer roleID); 

예외를 다음과 com.AccountDSSpMapper.getRoleDetails

누군가 MyBatis에서 여러 커서 값을 처리하는 데있어 잘못된 점이나 올바른 방법을 제안 해 주실 수 있습니까?

답변

0

는이

<select id="getRoleDetails" resultMap="Role,Feature,Privilege" statementType="CALLABLE"> 
     { call Get_RoleDetails(#{accountID, mode=IN, jdbcType=INTEGER}, #{roleID, mode=IN,   jdbcType=INTEGER})} 
</select> 


public List<List<ArrayList<Object>>> getRoleDetails(Integer accountID, Integer roleID); 
작업을 얻었다