ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Butler <jeffgbut...@gmail.com>
Subject Re: Help with iBatis nested <iterate> syntax
Date Wed, 05 May 2010 15:14:08 GMT
I think your issue relates to a misunderstanding about the "property"
attribute.  I see that you have added "ReportParameters" at the front
of all your property references.  My guess is that you don't need
that.  iBATIS would expect "ReportParameters" to be a property of your
parameter object - and I'm guessing that "ReportParameters" IS your
parameter object.  So,  remove "ReportParameters" and things will
likely improve.

Jeff Butler

On Wed, May 5, 2010 at 8:42 AM, devver <kmg203@googlemail.com> wrote:
>
> Thanks for your reply Jeff
>
> I am using something very similar (See below) but I am getting a host of
> error messages, including:
>
> --- Cause: 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: ""; nested
> exception is com.ibatis.common.jdbc.exception.NestedSQLException:
>
> followed by:
>
>  com.ibatis.common.beans.ProbeException: Error getting ordinal list from
> JavaBean. Cause java.lang.NumberFormatException: For input string: ""
>
> These are repeated several times.
>
> I pass a HashMap into the SQLMap. One of the instances is a ReportParameters
> instance. This is comprised of several properties but the important one as
> far as my SQL is concerned is an array of objects which themselves contain
> an array.
>
> My SQLMap dynanically builds a WHERE clause based on the ReportParameters
> 'outer' and 'inner' arrays. The <dynamic> block looks similar to this:
>
> <iterate prepend="AND" property="ReportParameters.outerArray"
> conjunction="OR" open="(" close=")">
>                (
>                #ReportParameters.outerArray[].someProperty#
>                ...
>
>                )
>                <iterate prepend="AND" property="ReportParameters.outerArray[].innerArray"
> conjunction="AND" open="(" close=")">
>                        (
>                           #ReportParameters.outerArray[].innerArray[].anotherProperty#
>                        )
>                </iterate>
>        )
> </iterate>
>
> I'm not sure why this is happening at all. The syntax looks straight-forward
> and intuitive and yet it (or something) appears to crash iBatis.
> I have dumped the contents of ReportParameters just before I execute the SQL
> via my DAO. Everything looks as expected.
>
> The version of iBatis I am using is v2. The app uses ibatis-common-2.jar and
> ibatis-sqlmap-2.jar
>
> Jeff Butler-2 wrote:
>>
>> Assuming MyParameters is some object passed as a parameter object, and
>> that myOuterList is a property of MyParameters:
>>
>> <iterate property="myOuterList" ...>
>>   <iterate property="myOuterList[].myInnerList"...>
>>     #myOuterList[].myInnerList[].myProperty#
>>   </iterate>
>> </iterate>
>>
>>
>> Jeff Butler
>>
>>
>> On Tue, May 4, 2010 at 2:09 PM, devver <kmg203@googlemail.com> wrote:
>>>
>>> Hi
>>>
>>> #Subsequent to the problems outline in this post:
>>> http://old.nabble.com/Problem-accessing-List-instance-property-via-%3Cisnull%3E-td28368852.html
>>>
>>> ... the problem has changed somewhat. The orignal SQL statement has been
>>> altered and we now have a structure which requries nested <iterate>
>>> elements.
>>>
>>> It looks like patches may have been introduced into IbAtis 2.x around
>>> 2006
>>> to enable this feature but I can't get it to work. Can someone please
>>> confirm the correct syntax? I had used somethign similar to this:
>>>
>>> <iterate property="MyParameters.myOuterList" conjunction="OR" open="("
>>> close=")">
>>>     <!-- Some SQL -->
>>>
>>>     <iterate proeprty ="MyParameters.myOuterList[].myInnerList"
>>> conjunction="AND" open="(" close=")">
>>>
>>>     <!-- More SQL where I access
>>> #MyParameters.myOuterList.myInnerList[].myProperty# -->
>>>
>>>     </iterate>
>>>
>>> </iterate>
>>>
>>> Any help gratefully received. Thanks
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Help-with-iBatis-nested-%3Citerate%3E-syntax-tp28451833p28451833.html
>>> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
>> For additional commands, e-mail: user-java-help@ibatis.apache.org
>>
>>
>>
>
> --
> View this message in context: http://old.nabble.com/Help-with-iBatis-nested-%3Citerate%3E-syntax-tp28451833p28461065.html
> Sent from the iBATIS - User - Java mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
> For additional commands, e-mail: user-java-help@ibatis.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@ibatis.apache.org
For additional commands, e-mail: user-java-help@ibatis.apache.org


Mime
View raw message