iBATIS.NET 在 iterate 用 isGreaterThan 等出错

时间:2022-09-23 19:49:07
我想在更新价格时只更新大于0 的,为了简便在页面取得时不区分是否大于零。
<update id="UpdateSignList" parameterClass="ArrayList"> 
<iterate close="" conjunction="" open=""> 
Update cmdCASign Set 
SignCount = #[].SignCount# 
<isGreaterThan property="[].SignCurUP" compareValue="0"> 
,SignCurUP = #[].SignCurUP# 
</isGreaterThan> 
WHERE CaSignID = #[].CaSignID# 
</iterate> 
</update> 

还试验过以上的用法? 
加入以下那段后就怎么也不行了! 
<isGreaterThan property="[].SignCurUP" compareValue="0"> 
,SignCurUP = #[].SignCurUP# 
</isGreaterThan> 

16 个解决方案

#1


我刚好也遇到这个问题,帮楼主顶!

#2


ckpckphaha(赫尔墨斯神杖)
你什么问题都刚好遇上?

#3


同意楼上

#4


up

#5


神杖兄刚好遇上的问题多着呢!!!

#6


看看输出的SQL语句是什么样的。
你的SqlMap写得比较怪,在下才疏学浅看不明白,
建议看看Ibatis in Action。

#7


<update id="UpdateSignList" parameterClass="ArrayList">
   <iterate close="" conjunction="" open="">
     <isGreaterThan property="[].SignCurUP" compareValue="0">
       Update 
         cmdCASign 
       Set
         SignCount = #[].SignCount#,
         SignCurUP = #[].SignCurUP#
       WHERE 
         CaSignID = #[].CaSignID#
     </isGreaterThan> 
   </iterate>
</update>

#8


楼上的首先感谢你了!
但是原因不在输出的SQL,而是不能输出SQL,运行时就错了!
iterate 内部好像不能用isGreaterThan  等

#9


学习中~~

#10


关注中......

#11


不知,帮顶

#12


不会,帮顶

#13


该回复于2008-05-09 11:17:17被版主删除

#14


不知道怎么搞

#15


不知道怎么搞

#16


<update   id= "UpdateSignList "   parameterClass= "ArrayList ">    
Update   cmdCASign   Set   
SignCount   =   #[].SignCount#  
<dynamic prepend=" WHERE "  open=""  close="">   
<isGreaterThan   property= "[].SignCurUP "   compareValue= "0 ">   
,SignCurUP   =   #[].SignCurUP#   
</isGreaterThan>  
</dynamic> 
<iterate  prepend="and"  close= " "   conjunction= "and"   open= " ">  
CaSignID   =   #[].CaSignID#   
</iterate>
</update>  

#1


我刚好也遇到这个问题,帮楼主顶!

#2


ckpckphaha(赫尔墨斯神杖)
你什么问题都刚好遇上?

#3


同意楼上

#4


up

#5


神杖兄刚好遇上的问题多着呢!!!

#6


看看输出的SQL语句是什么样的。
你的SqlMap写得比较怪,在下才疏学浅看不明白,
建议看看Ibatis in Action。

#7


<update id="UpdateSignList" parameterClass="ArrayList">
   <iterate close="" conjunction="" open="">
     <isGreaterThan property="[].SignCurUP" compareValue="0">
       Update 
         cmdCASign 
       Set
         SignCount = #[].SignCount#,
         SignCurUP = #[].SignCurUP#
       WHERE 
         CaSignID = #[].CaSignID#
     </isGreaterThan> 
   </iterate>
</update>

#8


楼上的首先感谢你了!
但是原因不在输出的SQL,而是不能输出SQL,运行时就错了!
iterate 内部好像不能用isGreaterThan  等

#9


学习中~~

#10


关注中......

#11


不知,帮顶

#12


不会,帮顶

#13


该回复于2008-05-09 11:17:17被版主删除

#14


不知道怎么搞

#15


不知道怎么搞

#16


<update   id= "UpdateSignList "   parameterClass= "ArrayList ">    
Update   cmdCASign   Set   
SignCount   =   #[].SignCount#  
<dynamic prepend=" WHERE "  open=""  close="">   
<isGreaterThan   property= "[].SignCurUP "   compareValue= "0 ">   
,SignCurUP   =   #[].SignCurUP#   
</isGreaterThan>  
</dynamic> 
<iterate  prepend="and"  close= " "   conjunction= "and"   open= " ">  
CaSignID   =   #[].CaSignID#   
</iterate>
</update>