and how to foreach a enum list when using sqlmap?
bruce666 wrote:
>
> I am used ibatis 3.0 GA;
>
> those are my JavaBean classes,
>
> public class SearchObject {
> private Long id;
> private List<Long> childIdList = new ArrayList<Long>();
> public Long getId() {
> return id;
> }
> public void setId(Long id) {
> this.id = id;
> }
> public List<Long> getChildIdList () {
> return childIdList;
> }
> public void setChildIdList (List<Long> childIdList ) {
> this.childIdList = childIdList ;
> }
> }
>
> public class ResultObject {
> private String result;
> public String getresult() {
> return result;
> }
> public void setResult(String result) {
> this.result = result;
> }
> }
>
> and this is my sqlmapping file,
>
> <select id="getView" parameterType="SearchObject "
> resultType="ResultObject">
> select o.result from table o
> <where>
> <if test="id != null ">
> o.id = #{id}
> </if>
> <if test="childIdList.size() > 0">
> and o.child in
> <foreach item="item" index="index" open="(" close=")"
> separator="," collection="childIdList" >
> #{item}
> </foreach>
> </if>
> </where>
> </select>
>
> when I execute I got error:
>
> ### Error querying database. Cause:
> org.apache.ibatis.reflection.ReflectionException: There is no getter for
> property named '__frch_item_0' in 'SearchObject'
> ### The error may involve sqlmap.Search.getView-Inline
> ### The error occurred while setting parameters
> ### Cause: org.apache.ibatis.reflection.ReflectionException: There is no
> getter for property named '__frch_item_0' in 'SearchObject'
> ERROR [STDERR] org.apache.ibatis.exceptions.PersistenceException:
> ### Error querying database. Cause:
> org.apache.ibatis.reflection.ReflectionException: There is no getter for
> property named '__frch_item_0' in 'SearchObject'
> ### The error may involve sqlmap.CCSalesOrderItem.getCCSOItemView-Inline
> ### The error occurred while setting parameters
> ### Cause: org.apache.ibatis.reflection.ReflectionException: There is no
> getter for property named '__frch_item_0' in 'SearchObject'
>
> If I change the sql mapping to this,
>
> <select id="getView" parameterType="SearchObject "
> resultType="ResultObject">
> select o.result from table o
> <where>
> <if test="id != null ">
> o.id = #{id}
> </if>
> <if test="childIdList.size() > 0">
> and o.child in
> <foreach item="item" index="index" open="(" close=")"
> separator="," collection="childIdList" >
> #childIdList[${index}]
> </foreach>
> </if>
> </where>
> </select>
>
> I got this error:
>
> ### Error querying database. Cause:
> org.apache.ibatis.executor.ExecutorException: There was no TypeHandler
> found for parameter childIdList[0] of statement sqlmap.Search.getView
> ### The error may involve sqlmap.Search.getView-Inline
> ### The error occurred while setting parameters
> ### Cause: org.apache.ibatis.executor.ExecutorException: There was no
> TypeHandler found for parameter childIdList[0] of statement
> sqlmap.Search.getView
>
> where cause the error?
>
--
View this message in context:
http://old.nabble.com/iBATIS-3-dynamic-sql-%27foreach%27-list-got-problem.-tp28814309p28815580.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]