2010-05-21 4 views
1

Supposons que j'ai une table massive appelée inactiveUsers et un formulaire de recherche. Je souhaite joindre conditionnellement la table inactiveUsers si une caractéristique liée à l'utilisateur est choisie (adresse, nom, numéro de téléphone, etc ...). Est-il possible de le faire sans les éléments suivants:ibatis isNotEmpty avec plusieurs variables

<isNotEmpty property="address">JOIN inactiveUsers</isNotEmpty> 
<isNotEmpty property="phoneNumber">JOIN inactiveUsers</isNotEmpty> 
<isNotEmpty property="name">JOIN inactiveUsers</isNotEmpty> 

et ainsi de suite pour un autre 10-20 clauses isNotEmpty. Je voudrais faire quelque chose comme:

<isAnyNotEmpty properties="address, phoneNumber, name, ....">JOIN inactiveUsers</isNotEmpty> 

Est-ce possible avec ibatis? Si c'est le cas, comment?

Répondre

1

je créerais une propriété booléenne useJoin

public boolean isUseJoin() { 
     if(!adress.equals("") && !phoneNumber.equals("")&&!name.equals("")) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

pas parfait, mais semble mieux que plusieurs déclarations à l'article Ibatis.

0

Je crois que ce n'est pas possible (simplement) avec iBatis2. iBatis3 a une balise <if>, mais néanmoins la syntaxe ne serait pas très simple. Je préfèrerais coder une pseudo-propriété dans l'objet (si vous pouvez le toucher) pour demander cette condition, ce serait beaucoup plus simple.