[seasar-dotnet:2332] Re: 2WaySQLの記述方法について

kubo [E-MAIL ADDRESS DELETED]
2013年 10月 25日 (金) 03:26:22 JST


久保(jflute)です

志水さん、こんばんは
(taknb2nchさん、フォローありがとうございます)

> ParameterBeanの定義は先頭小文字、
> ParameterBeanのプロパティを参照する部分は先頭大文字、

こちらのイメージがDBFlute.NETのイメージとなります。
大文字小文字のブレは仕組み上の抜けとなります。

どうしても、Javaと.NETでプロパティの習慣が違い、
pmbはJavaの習慣で作られたため、先頭が小文字です。
したら、本当はそのままパラメーターコメント内も小文字に
したかったのですが、そこのパース処理はS2Dao.NETなので、
そのままEntityのプロパティ名参照となり先頭が大文字です。

DBFluteランタイム導入の際(いつ!?)には、
パラメーターコメント内も小文字でいけるようにはしたいと
思ってますが、現状はちょっと中途半端な状態です。

※本当は、Javaと.NETで外だしSQLが変わらないようにしたい...


2013/10/25 志水正幸 <ie2m-smz @ asahi-net.or.jp>:
> こんばんわ。志水です。
>
> なるほど。
> こういう記事やサンプルがあったんですね。
> 見落としていたようです。
> 頭文字は、宣言は小文字、パラメータ利用時は大文字が正式なようですね。
>
> この書き方で統一したいと思います。
> ありがとうございました。
>
>
>
> (2013/10/25 0:07), taknb2nch wrote:
>
> こんにちは、taknb2nchです。
>
> 私もどれが正解かと言われると自信がありませんが、
> こちらにもありますように、
> http://dbflute.net.sandbox.seasar.org/ja/introduction/index.html#methodinit
> 「外だしSQLのパラメータコメント上でのプロパティの参照は...注意が必要です。」
> と書かれてあります。
>
> またParameterBeanの定義については、
> https://www.seasar.org/svn/sandbox/dbflute.net/trunk/dfnet-basic-example/source/DfExample/DBFlute/ExBhv/
> のサンプル(sqlファイル)を見てみますと、
> フィールド(メンバ変数)のように先頭は小文字で定義されています。
>
> ですので私は、
> ParameterBeanの定義は先頭小文字、
> ParameterBeanのプロパティを参照する部分は先頭大文字、
> を使用しています。
>
>
>
> 2013年10月24日 19:23 志水正幸 <ie2m-smz @ asahi-net.or.jp>:
>>
>> こんにちは。お世話になっています。
>> 志水と申します。
>>
>> 2WaySQLの記述方法なのですが、
>> よく、説明も読まずに作ってしまった私も悪いのですが、
>> DBFLUTEの「パラメータコメント」では、両方とも小文字なんですよね~。
>> しかし別の書き方でも動くんです。
>> でも、すこし書き方が違うと動かない場合もあるんです。
>> 何が正式な記述方法なのか、よくわからなくなってしまいました。
>> まぁ動いているっぽいのでイイと言えばそれまでなんですが・・・
>> なんか気持ち悪いので、教えてください。
>>
>> 以下の<参考SQL>(適当なSQLなので構文おかしいかも)ような記述をして実行したところ、
>> 条件部分の「pmb.misecd」に値を入れていても無視されている状態になりました。
>>  >>/*IF pmb.misecd != null*/T_SIWAKE.misecd_cd =
>> /*pmb.misecd*/'110001'/*END*/
>> 無視されているのでおかしいと思い、以下のように他の条件と同じようにpmb変数の頭文字を大文字に
>> 変更したところ認識されるようになりました。
>>  >>/*IF pmb.Misecd != null*/T_SIWAKE.misecd_cd =
>> /*pmb.Misecd*/'110001'/*END*/
>>
>> また、別のSQLでは、
>> 下記のように宣言部分のpmb変数の頭文字も大文字で、且つ
>> SQL内のpmb変数の頭文字も大文字の場合もうまく動作しています。
>> -- !df:pmb extends Paging!
>> -- !!String Misecd!!
>> -- !!String Syubetucd!!
>> -- !!String Nendo!!
>>
>>
>> <結論>
>> ・宣言部分は、頭文字は大文字でも小文字でも関係なし
>> ・SQL条件内は、頭文字は大文字もしくは小文字でそろえないとダメ
>>  ⇒SQL条件内で混在はダメ
>> ・宣言部分のpmb変数の頭文字が小文字でもSQL条件内でのpmb変数は大文字でもOK。
>>  こんな感じだと思うのですが、どうでしょうか?
>>
>> 以上、宜しくお願いします。
>>
>> *--<参考
>> SQL>---------------------------------------------------------------------------*
>>
>> -- #xxxxxxxxSQL#
>>
>> -- !df:pmb extends Paging!
>> -- !!String misecd!!
>> -- !!String syubetucd!!
>> -- !!String nendo!!
>>
>> SELECT T_XXXXX.misecd, SUM(NVL(T_XXXXX.KIN,0)) AS KIN,
>> SUM(NVL(T_XXXXX.TAX,0)) AS TAX
>> ,TRUNC(T_XXXXX.TOROKU_YMD,'MM') AS TOROKU_YMD
>>  FROM T_XXXXX
>> /*BEGIN*/WHERE
>> /*IF pmb.misecd != null*/T_SIWAKE.misecd_cd =
>> /*pmb.misecd*/'110001'/*END*/
>> /*IF pmb.Syubetucd != null*/AND T_XXXXX.kaikei_cd =
>> /*pmb.Syubetucd*/'03'/*END*/
>> /*IF pmb.Nendo != null*/AND T_XXXXX.nendo = /*pmb.Nendo*/'2013'/*END*/
>> /*END*/
>> GROUP BY T_XXXXX.misecd,TRUNC(T_XXXXX.TOROKU_YMD,'MM')
>> ORDER BY T_XXXXX.misecd,TRUNC(T_XXXXX.TOROKU_YMD,'MM')
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>
>
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>
>
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内