1
回答
ibatis iterator 标签下面不能dynamic标签,逻辑如何改写?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

下面这条SQL如何写?

这样子的时候报错,iterator标签下面不能有dynamic标签。

<iterate property="condList"  open="(" close=")" conjunction="or">  
(
<dynamic>
     <isNotNull  property="lid" prepend="and"> SOURCE_LID = #condList[].lid#</isNotNull> 
     <isNotNull  property="mid" prepend="and"> MID = #condList[].mid#</isNotNull> 
     <isNotNull  property="fid" prepend="and"> FID = #condList[].fid#</isNotNull> 
     <isNotNull  property="ctid" prepend="and"> CTID = #condList[].ctid#</isNotNull> 
     <isNotNull  property="accountType" prepend="and"> ACCOUNT_TYPE = #condList[].accountType#</isNotNull>   


 </dynamic>


)
</iterate>




SQL
举报
liangxiao
发帖于1年前 1回/126阅
共有1个答案 最后回答: 1年前

发现下面这种方法可以解决问题,虽然不完美

<iterate property="condList"  open="(" close=")" conjunction="or">  
(
   1 = 1
     
     <isNotNull  property="lid" prepend="and" > SOURCE_LID = #condList[].lid#</isNotNull> 
     <isNotNull  property="mid" prepend="and"> MID = #condList[].mid#</isNotNull> 
     <isNotNull  property="fid" prepend="and"> FID = #condList[].fid#</isNotNull> 
     <isNotNull  property="ctid" prepend="and"> CTID = #condList[].ctid#</isNotNull> 
     <isNotNull  property="accountType" prepend="and"> ACCOUNT_TYPE = #condList[].accountType#</isNotNull>   
 
 

 
 
)
</iterate>



顶部