在动态映射的where部分.有如下嵌套的动态条件
1、如果 a,b,c都不为空的情况下
where a = 1 and ( b=2 or c= 3)
2、如果 a为空,b,c不为空
where b=2 or c= 3
3、如果b,c其中一个为空
where a = 1 and b=2
解决方案如下:
where 1=1
<dynamic prepend="and" open="(" close=")">
<isNotEmpty prepend="and" property="a">
a = #a#
</isNotEmpty>
<isNotEmpty prepend="or" property="b" removeFirstPrepend="true">
b = #b#
</isNotEmpty>
<isNotEmpty prepend="or" property="c" removeFirstPrepend="true">
c = #c#
</isNotEmpty>
</dynamic>
以上代码经本人测试通过!