浏览 10587 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-25
public Integer getOrderformCountByBiOid(String biOid, String titlesearch, List recBiOidsearch) throws Exception { HashMap paramMap=new HashMap(); paramMap.put("biOid", biOid); paramMap.put("titlesearch", titlesearch); paramMap.put("recBiOidsearch", recBiOidsearch); return (Integer) this.sqlMapClient.queryForObject("getOrderformCountByBiOid", paramMap); } 上面的recBiOidsearch元素是一个List,里面包含了一个oid列表。biOid和titlesearch是String。 我的sqlMap代码如下: <select id="getOrderformByBiOid" parameterClass="java.util.HashMap" resultMap="OrderformResult"> select * from OPINION_ORDERFORM <dynamic prepend="where"> <isNotNull prepend="and" property="biOid"> BIOID=#biOid# </isNotNull> <isNotNull prepend="and" property="titlesearch"> ORDERTITLE like '%$titlesearch$%' </isNotNull> <isNotNull prepend="and" property="recBiOidsearch"> RECBIOID in <iterate open="(" close=")" conjunction=","> #recBiOidsearch[]# </iterate> </isNotNull> </dynamic> order by SENDTIME DESC </select> 我希望执行的是一个这样的sql(假设所有的元素都不是null的话): select * from OPINION_ORDERFORM where BIOID=#biOid# and ORDERTITLE like '%$titlesearch$%' and RECBIOID in(1,2,3) 但是报错,信息如下: com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in sql-map/Orderform.xml. --- The error occurred while preparing the mapped statement for execution. --- Check the getOrderformByBiOid. --- Check the parameter map. --- Cause: com.ibatis.sqlmap.client.SqlMapException: ParameterObject or property was not a Collection, Array or Iterator. 如果我将List相关的sqlmap删掉,即下面这段代码删掉: <isNotNull prepend="and" property="recBiOidsearch"> RECBIOID in <iterate open="(" close=")" conjunction=","> #recBiOidsearch[]# </iterate> </isNotNull> 他就没问题了,所以我怀疑 parameterClass="java.util.HashMap"是不是错误,还是有别的问题呢?请教各位有经验者,十分感谢!!!如果能有更好地解决办法,还麻烦发上来,感谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-25
找到问题了!!刚发完帖google了一下,iterate应该加上property="recBiOidsearch"的属性。因为没有写这个,iterate找不到集合。
|
|
返回顶楼 | |
发表时间:2008-01-07
原来如此,所以在遍历之前要设置被跌代对象
|
|
返回顶楼 | |