0

MyBatis で複数のカーソル値を読み取り、これらの値を DTO で設定しようとしていますが、エラーが発生します。私のSPは3つのカーソルと、1つの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);

例外 - java.lang.IllegalArgumentException: Mapped Statements コレクションに com.AccountDSSpMapper.getRoleDetails の値が含まれていません

誰かがここで何が間違っているか、または MyBatis で複数のカーソル値を処理する正しい方法を提案できますか?

4

1 に答える 1

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);
于 2012-07-27T08:02:41.087 に答える