S2Dao の SQL コメントでハマッたこと

落ち着いてきたので、今回係った開発プロジェクトで実際にあったハマリネタをひとつ紹介します。

select
    tab1.col1
from
    tab1
where
    col1 = 'foo'
    /*IF param=='hoge'*/
        and col2 = 'bar'
    /*END*/

と書いたとき、IFブロックが想定通りに評価されません。
S2DaoSQL コメントに書ける式は OGNL 式なので、

select
    tab1.col1
from
    tab1
where
    col1 = 'foo'
    /*IF param=="hoge"*/
        and col2 = 'bar'
    /*END*/

のようにダブルクォートで囲まないと文字列として認識してくれないというオチ。
シングルクォートだと、char として解釈されてしまうみたい。


そういえば、何ヶ月か前から OGNL のサイトが丸ごと削除されてしまっているんだけど、プロジェクトが解散したんだろうか?
メンテはされないんだろうか。せめてリファレンスドキュメントくらいは残しておいてほしいんだけど・・・。


なお、OGNLの簡単な解説は以下にあります。
http://s2container.seasar.org/2.4/ja/ognl.html