Mybatisを聞いたことない人に簡単に紹介すると、MybatiってのはO/Rマッピングフレームワークのひとつです。 XMLで動的なSQLの記述ができるので、複雑なSQLでも発行できて、なかなか便利に使わせてもらってます。 今回ハマったところ、というのがこのMybatisが持つ機能のひとつ、WHEREの動的組み立てに関するもの。 <where>というタグを使って、WHEREを組み立ててくれるのですが、組み立てられた条件文字列の先頭が、ANDやORで始まる場合、これを除去してくれる、なんていう機能を持っていたりします。 便利なのだけど、実はこの機能、落とし穴がある。 ANDやORで始まっていた場合にこれを除去する、と言ってもこの表現、実は正確ではない。 正確には、 「組み立てた条件文字列の先頭が “AND "や”OR ” で始まっていた場合、これを除去する」 となる。 つまり、 組み立てた条