ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vadim Grinshpun <va...@ll.mit.edu>
Subject Re: flexible queries?
Date Wed, 28 Jun 2006 20:21:33 GMT
Er... Thanks, but either you misread my example, or I completely do not 
understand what you mean.
The example I gave uses a large chunk of  iBATIS-like *pseudocode* 
(there is no 'if' tag and no 'or' tag!), and thus cannot work as is.
I've looked through the Dev Guide ( version that was in SVN as of 6/20), 
but so far was unable to find anything that would allow for this kind of 
functionality. (effectively, what I want is to have a *SINGLE* iBATIS 
conditional that would test multiple properties and OR the results).
Could you take another look at it, please, or explain in more detail?  
Niels Beekman wrote:
> Yes, that should work out just fine. See the Developer Guide for some
> examples...
> -----Original Message-----
> From: Vadim Grinshpun [mailto:vadim@ll.mit.edu] 
> Sent: woensdag 28 juni 2006 20:58
> To: user-java@ibatis.apache.org
> Subject: flexible queries?
> Hi everyone,
> Suppose I have a query where I want a join to be performed only if *one 
> or more* of a set of parameters are present.
> Is there a way in SqlMaps to do something like this? (below is an 
> example snippet of  what I'd like to do, using some pseudocode in the 
> first <dynamic> section):
>     table_foo f, table_bar b
>    <dynamic> <!-- if any of the params in the conditional are defined, 
> add one more table to join -->
>       <if>
>         <or>
>           <isEqual property="X.defined" compareValue="true" />
>           <isEqual property="X.defined" compareValue="true" />
>         </or>
>        <then>, table_baz z</then>
>       </if>
>    </dynamic>
>    WHERE f.field = b.field
>    <dynamic>
>      <isEqual property="X.defined" compareValue="true" prepend="AND" 
>  >z.x_field > #X.value#</isEqual>
>      <isEqual property="Y.defined" compareValue="true" prepend="AND" 
>  >z.y_field = #Y.value#</isEqual>
>   </dynamic>
> Thanks,
> --Vadim

View raw message