ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Abeyratne, Sam" <sam.abeyra...@cingular.com>
Subject dynamic sql within an iterate tag
Date Tue, 07 Jun 2005 00:29:10 GMT
Hey All,

 

I had asked this question before, but I didn't get an answer, so I am
re-posting this question:

 

I am getting the following error when I try to run a simple query that
has a dynamic <isNotEqual> within an iterate tag. Can you tell me if
this is even possible to do in iBatis? 

 

Thanks in advance for your assistance!

Sam

 

 

2005-06-06 17:11:25,284 [HttpRequestHandler-2083] DEBUG xxxDAO.class -
Parameters: {sidList=[abc1, abc2], carrier=ABCDE1, interfaceType=DSP}

2005-06-06 17:11:25,284 [HttpRequestHandler-2083] DEBUG xxxDAO.class -
Calling queryForList with statementName: queryInterfaceErrorCount and
parameters: {sidList=[abc1, abc2], carrier= ABCDE1, interfaceType=DSP}

2005-06-06 17:11:25,294 [HttpRequestHandler-2083] ERROR
xxxDispatchAction.class - Entered catch block in viewErrorLog: Exception
in queryInterfaceErrorCount: com.ibatis.common.beans.ProbeException:
Error getting ordinal list from JavaBean. Cause
java.lang.NumberFormatException: For input string: "" Caused by:
java.lang.NumberFormatException: For input string: ""

The sqlmap looks something like:

 

    <select id="queryInterfaceErrorCount" parameterClass="java.util.Map"
resultMap="interface_error_count_result"
cacheModel="interface_error_count_cache">

    select sum(count) as count

    from 

    ( 

      <iterate property="sidList" open="(" close=")" conjunction="UNION
ALL">

        select count(*) as count

          from mim_error_log@$sidList[]$

        where interface_type = #interfaceType# 

        <isNotEqual prepend="and" property="carrier" compareValue="All">


          carrier_name = #carrier#  

        </isNotEqual>

      </iterate>

    )

  </select>

 

Java bean looks like: 

 

public class InterfaceErrorCount  {

  

  private int count;

 

  public int getCount() {

    return count;

  }

  

  public void setCount(int count)  {

    this.count = count;

  }

}


Mime
View raw message