1
回答
ibatis iterator 标签下面不能dynamic标签,逻辑如何改写?
科大讯飞通用文字识别100000次/天免费使用。立即申请   

下面这条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
发帖于2年前 1回/136阅
共有1个答案 最后回答: 2年前

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

<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>



顶部