ひがやすを技術ブログ

電通国際情報サービスのプログラマ

S2Daoの複雑な条件

オリジナルはfoo=’a’ AND (bar=’b’ OR bar=’c’)


/*BEGIN if(#foo != null)*/
foo=/*#foo*/’a'
/*END*/
/*BEGIN*/
AND (
/*BEGIN if(#bar1 != null)*/
bar=/*#bar1*/’b’
/*END*/
/*BEGIN if(#bar2 != null)*/
OR bar=/*#bar2*/’c’
/*END*/
)
/*END*/
BEGINとENDで囲まれている部分をコメントブロックと呼ぶことに
すると条件なしのコメントブロックは子供のコメントブロックが
ひとつも対象にならなかった場合には出力されず、
子供のAND,ORコメントブロックは親の中で、自分が最初に
対象になったときには、AND,ORを出力せず、最初じゃない場合は、
出力することになります。
barの数が可変長なら、barの部分は、SQLからJavaを呼び出す
方法ですね。