假设我有一个名为inactiveUsers的大型表和一个搜索表单。如果选择了任何与用户相关的特性(地址,名称,电话号码等),我想有条件地加入inactiveUsers表。如果没有以下内容,有没有办法做到这一点:
<isNotEmpty property="address">JOIN inactiveUsers</isNotEmpty>
<isNotEmpty property="phoneNumber">JOIN inactiveUsers</isNotEmpty>
<isNotEmpty property="name">JOIN inactiveUsers</isNotEmpty>
等等另外10-20个isNotEmpty子句。我想做点什么:
<isAnyNotEmpty properties="address, phoneNumber, name, ....">JOIN inactiveUsers</isNotEmpty>
这可能与ibatis有关吗?如果是这样,怎么样?
答案 0 :(得分:1)
我会创建一个布尔属性useJoin
public boolean isUseJoin() {
if(!adress.equals("") && !phoneNumber.equals("")&&!name.equals("")) {
return true;
} else {
return false;
}
}
不完美,但似乎比IBATIS子句中的多个陈述更好。
答案 1 :(得分:0)
我认为(简单地)使用iBatis2是不可能的。 iBatis3有一个<if>
标签,但是语法不是很简单。
我宁愿在对象中编写一个伪代码(如果你可以触摸它)来要求这个条件,这会更简单。