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
是一个包含您的查询参数的哈希图
我有一个 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
是一个包含您的查询参数的哈希图