ibatis - 如何映射值列表

ibatis - How to map list of value

我有一个 select 语句,其中 returns 相同数据类型 (VARCHAR) 的值列表。结果是 1 到 6 rows.I 之间的任何地方,使用 queryForList() 并将响应存储在列表对象中。执行时出现错误

--- Cause: com.ibatis.sqlmap.client.SqlMapException: No type handler could be found to map the property 'statusList' to the column 'null'. One or both of the types, or the combination of types is not supported.

SQL查询,执行时在SQLwindow、returns3行。你能帮忙吗?提前致谢

<resultMap id="retrieveStatusResult"
    class="ie.org.model.ResponseBO">
    <result property="statusList" columnIndex="1" />
</resultMap>

<select id="retrieveStatus" parameterClass="ie.org.model.RequestBO"
    resultMap="retrieveStatusResult">
    SELECT (SELECT DESCRIPTION 
    FROM TABLEA LCD 
    WHERE LCD.CODE_DETAIL = QPL.STATUS)
    FROM  TABLEB QPL 
    WHERE QPL.QUOTE=#Quote#
    AND VERSION IN (SELECT VERSION FROM TABLEB WHERE QUOTE = #Quote#)       
</select>

ResponseBO.java

private List statusList = new ArrayList();

public List getStatusList() {
    return statusList;
}

public void setStatusList(List statusList) {
    this.statusList = statusList;
}

你没有映射结果properly/your博错了。

当您使用 queryForList() 时,您正在尝试创建您在 resultMap 中拥有的对象的列表。在您的 BO 中,您正在尝试从查询答案的每一行创建一个列表。

你应该像这样使用 BO:

private String status;

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

它的类型适合您的查询。

要使用查询结果,您可以这样调用语句:

List<ResponseBO> listStatus = new ArrayList<ResponseBO>();

listStatus = (List<ResponseBO>)queryForList("retrieveStatus",properys);

propertys 是一个包含您的查询参数的哈希图