と、DBFluteTeedaExampleを触ってて、発覚したのが、 H2がとあるバージョン(2008-1-18かな!?)から、 「結合条件の相関サブクエリ」がサポートされなくなりました。 (left outer joinのon句の条件の中での相関サブクエリ) 明示的に「Unsupport」と言われて例外が発生します。 それまでは「外部結合なのに内部結合の動きをする」というバグが ありながらも、実行自体はできてて活用していたのですが、 サポート自体をしなくなったようです。ぐへぇ〜 DBFluteTeedaExampleで最終ログイン日時を取得するのにもろに 使ってたからちょっと痛い。とりあえずコメントアウトしてます。 今更PostgreSQLやMySQLに変えるわけにもいかないので、 「画面仕様を変えるしか無いw」ですね。仕様変更だー!
select ... from MEMBER mb left outer join MEMBER_LOGIN mblg on mb.MEMBER_ID = mblg.MEMBER_ID and mblg.LOGIN_DATETIME = ( select max(LOGIN_DATETIME) from MEMBER_LOGIN where MEMBER_ID = mb.MEMBER_ID )
この「結合条件の相関サブクエリ」に関しては、 またこのBLOGで別途テーマにします。 (どのDBで利用できるのか!?など)