You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-cs@ibatis.apache.org by Michael Schall <mi...@gmail.com> on 2006/04/28 15:53:24 UTC
Prepend not working
I have the following code and does not work. Is this a bug or am I
not understanding how the prepend should work? I get a "sql error
near tp_Calls". The prepends aren't adding in the "and" to the
resultant sql string.
<dynamic prepend="WHERE">
<![CDATA[
OffHookDt <= #EndDate# AND
OffHookDt >= #StartDate#
]]>
<isNotNull property="LocationCode">
<isNotEqual prepend="and" property="LocationCode" compareValue="%">
tp_Calls.LocationCd = #LocationCode#
</isNotEqual>
</isNotNull>
<isNotEqual prepend="and" property="RateType" compareValue="-1">
RateType = #RateType#
</isNotEqual>
<isEqual prepend="and" property="PrivateAllowed" compareValue="0">
tp_Calls.Hidden = 0
</isEqual>
</dynamic>
If I change it to the following everything works great.
<dynamic prepend="WHERE">
<![CDATA[
OffHookDt <= #EndDate# AND
OffHookDt >= #StartDate#
]]>
<isNotNull property="LocationCode">
<isNotEqual property="LocationCode" compareValue="%">
and tp_Calls.LocationCd = #LocationCode#
</isNotEqual>
</isNotNull>
<isNotEqual property="RateType" compareValue="-1">
and RateType = #RateType#
</isNotEqual>
<isEqual property="PrivateAllowed" compareValue="0">
and tp_Calls.Hidden = 0
</isEqual>
</dynamic>
Mike
Re: Prepend not working
Posted by Michael Schall <mi...@gmail.com>.
I actually tried that first . I thought that the nested isNotNull and
isNotEqual might be too complex so at first I added "and
tp_Calls.LocationCd = #LocationCode#" and left the other two as a
prepend. The first simple one failed as well.
On 4/29/06, Rick Reumann <ri...@gmail.com> wrote:
> I know there are currently some bugs in how prepend is working. Try
> adding prepend to the first isNotNull section also. For some reason it
> seems you have to prepend="and" to places where you wouldn't think it
> would be needed.
>
> Michael Schall wrote:
> > I have the following code and does not work. Is this a bug or am I
> > not understanding how the prepend should work? I get a "sql error
> > near tp_Calls". The prepends aren't adding in the "and" to the
> > resultant sql string.
> >
> > <dynamic prepend="WHERE">
> > <![CDATA[
> > OffHookDt <= #EndDate# AND
> > OffHookDt >= #StartDate#
> > ]]>
> > <isNotNull property="LocationCode">
> > <isNotEqual prepend="and" property="LocationCode" compareValue="%">
> > tp_Calls.LocationCd = #LocationCode#
> > </isNotEqual>
> > </isNotNull>
> > <isNotEqual prepend="and" property="RateType" compareValue="-1">
> > RateType = #RateType#
> > </isNotEqual>
> > <isEqual prepend="and" property="PrivateAllowed" compareValue="0">
> > tp_Calls.Hidden = 0
> > </isEqual>
> > </dynamic>
> >
> > If I change it to the following everything works great.
> >
> > <dynamic prepend="WHERE">
> > <![CDATA[
> > OffHookDt <= #EndDate# AND
> > OffHookDt >= #StartDate#
> > ]]>
> > <isNotNull property="LocationCode">
> > <isNotEqual property="LocationCode" compareValue="%">
> > and tp_Calls.LocationCd = #LocationCode#
> > </isNotEqual>
> > </isNotNull>
> > <isNotEqual property="RateType" compareValue="-1">
> > and RateType = #RateType#
> > </isNotEqual>
> > <isEqual property="PrivateAllowed" compareValue="0">
> > and tp_Calls.Hidden = 0
> > </isEqual>
> > </dynamic>
> >
> > Mike
> >
>
>
Re: Prepend not working
Posted by Rick Reumann <ri...@gmail.com>.
I know there are currently some bugs in how prepend is working. Try
adding prepend to the first isNotNull section also. For some reason it
seems you have to prepend="and" to places where you wouldn't think it
would be needed.
Michael Schall wrote:
> I have the following code and does not work. Is this a bug or am I
> not understanding how the prepend should work? I get a "sql error
> near tp_Calls". The prepends aren't adding in the "and" to the
> resultant sql string.
>
> <dynamic prepend="WHERE">
> <![CDATA[
> OffHookDt <= #EndDate# AND
> OffHookDt >= #StartDate#
> ]]>
> <isNotNull property="LocationCode">
> <isNotEqual prepend="and" property="LocationCode" compareValue="%">
> tp_Calls.LocationCd = #LocationCode#
> </isNotEqual>
> </isNotNull>
> <isNotEqual prepend="and" property="RateType" compareValue="-1">
> RateType = #RateType#
> </isNotEqual>
> <isEqual prepend="and" property="PrivateAllowed" compareValue="0">
> tp_Calls.Hidden = 0
> </isEqual>
> </dynamic>
>
> If I change it to the following everything works great.
>
> <dynamic prepend="WHERE">
> <![CDATA[
> OffHookDt <= #EndDate# AND
> OffHookDt >= #StartDate#
> ]]>
> <isNotNull property="LocationCode">
> <isNotEqual property="LocationCode" compareValue="%">
> and tp_Calls.LocationCd = #LocationCode#
> </isNotEqual>
> </isNotNull>
> <isNotEqual property="RateType" compareValue="-1">
> and RateType = #RateType#
> </isNotEqual>
> <isEqual property="PrivateAllowed" compareValue="0">
> and tp_Calls.Hidden = 0
> </isEqual>
> </dynamic>
>
> Mike
>