[Seasar-user:21679] Re: S2JDBC の AutoSelect への includes() と excludes() 実装

Jun Futagawa [E-MAIL ADDRESS DELETED]
2013年 7月 21日 (日) 23:14:44 JST


ふたがわ (jfut) です。

On 2013/07/20 11:06, Koichi Kobayashi wrote:

> パッチを取り込んでコミットしました。
> スナップショットをデプロイしたのでご確認ください。

取り込みありがとうございます。
スナップショットで動作確認し、問題ありませんでした。

> パッチを適用してから気づいたのですが、重複する
> 機能として既に eager() がありました。
> # すっかり忘れてました。。。 心より恥じる。
...
> これは落とし穴にしか見えないので、includes() を
> 指定した場合は eager() を指定しなくても済むように
> 修正して、ドキュメントには両方を混ぜて使わないよう
> 記載しました。
> # eager() 本体の説明より注意点が長くなった。。。
> # でも混ぜて使わなければややこしいことはないはず

使い方が違うので気にしていませんでした(すいません)が、
説明していただいた上記の挙動が判り易いと思いますので
入れていただいた修正でより良いと思います。

一点、大した違いはないですが、@Id が付いたプロパティは
無条件で対象なので、下記のように、final boolean lazy の値を
取得する前で return true; しても良いのかなと思いました。

        if (propertyMeta.isId()) {
            return true;
        }
        final boolean lazy = isLazy(propertyMeta, joinMeta);

> ドキュメントの includes/excludes 追加位置も eager() の
> 直前にしました。
> 
> 些細なことですが、ドキュメントなどで includes() 等が
> join() より前にあったのですが、includes() の指定は
> join() で指定した関連名を使えるので、後の方に移動
> しました。
> # SQL 書く時も SELECT 句は後で書く方が楽だし。

これはどちらを先に指定するか迷って、SQL を書くときは
カラム指定が先で join 指定が後なので、その順番の例で
書いていました。どちらに書いてあっても問題はないですし、
先頭から流れるように書いていくときは先に join があった方が
判り易いので、書いていただいたままで良いと思います。

ドキュメントの補足、ありがとうございます。

-- 
Jun Futagawa


Seasar-user メーリングリストの案内