[seasar-dotnet:1697] Re: [DBFlute]ConditionBean利用時に出力されるSQLについて

kubo [E-MAIL ADDRESS DELETED]
2010年 5月 27日 (木) 19:31:32 JST


久保(jflute)です。

志村さん、フォローありがとうございます。
ON句で固定条件が使えないとは...

森脇さん、0.8.9.16-RC3でお試し下さい。
http://dbflute.net.sandbox.seasar.org/ja/environment/newest.html

MS Accessのときだけ、where句に
条件が配置されるようにしています。
(常にそうですが、こちらではJava版だけでの
確認しかしていません)


#
# テーブルの作成をどうしようかなぁと考えて、
# OutsideSqlTestタスクで create table やったら、
# (DDLなのに)ロールバックされてびっくりしました。
#

2010/5/27 k.moriwaki <[E-MAIL ADDRESS DELETED]>:
> 志村さん
> お世話になります、森脇です。
>
>> 以下だと多分大丈夫だと思います。
> 回答ありがとうございます。
> MSAccessはonの後にandで条件追加は出来ないのですね。
>
> where に条件を加えるのでいけそうなのでMSAccessの場合は
> additionalForeignKeyMap.dfpropのfixedConditionで条件を指定せず、
> ConditionBean.Query().QueryHogeTbl() で条件を設定するようにします。
>
> ありがとうございました。
>
>
> 2010年5月27日14:28 Masanobu Shimura <[E-MAIL ADDRESS DELETED]>:
>> 森脇さん、久保さん
>> 以下だと多分大丈夫だと思います。
>> select  dflocal.ID as ID, dflocal.NAME as NAME, dflocal.NAMECODE as NAMECODE
>>     , dfrelation_0.ID as ID_0, dfrelation_0.CODEKIND as CODEKIND_0
>>     , dfrelation_0.CODE as CODE_0, dfrelation_0.NAME as NAME_0
>>  from HOGE_TBL dflocal
>>    left outer join NAME_TBL dfrelation_0 on dflocal.NAMECODE =
>> dfrelation_0.CODE
>> where (dfrelation_0.CODEKIND = '80')
>> 志村
>>
>> 2010年5月27日10:21 k.moriwaki <[E-MAIL ADDRESS DELETED]>:
>>>
>>> 久保さん
>>> お世話になります、森脇です。
>>>
>>> 回答ありがとうございます、こんなに早く対応して頂けるとは思いませんでした。
>>> 0.8.9.16-RC2 で自動生成したソースで期待通りのSQLが出力される事が確認できました。
>>>
>>> > # 解決したので、MS Accessでもそれなりに
>>> > # CBが利用できるようになっています。
>>> これについて質問なのですが、業務的one-to-one はサポート対象外でしょうか?
>>> 試しにやってみたところ以下のようなSQLが出力されエラーになりました。
>>> エラーの内容は「left outer join ~ on ~ and ~ 」のand以降の部分で
>>> 「結合式がサポートされていません」となります。
>>>
>>> 私もMSAccessの構文には詳しくないためどういう風に修正したら良いかわからないのですが、
>>> とりあえず以下のsqlにwhereを追加し、and以降の条件をwhereに追加したら取得できるようになりました。
>>>
>>> ----- SQL ここから
>>> select  dflocal.ID as ID, dflocal.NAME as NAME, dflocal.NAMECODE as
>>> NAMECODE
>>>     , dfrelation_0.ID as ID_0, dfrelation_0.CODEKIND as CODEKIND_0
>>>     , dfrelation_0.CODE as CODE_0, dfrelation_0.NAME as NAME_0
>>>  from (HOGE_TBL dflocal
>>>    left outer join NAME_TBL dfrelation_0 on dflocal.NAMECODE =
>>> dfrelation_0.CODE and dfrelation_0.CODEKIND = '80')
>>> ----- SQL ここまで
>>>
>>>
>>> 2010年5月26日15:53 kubo <[E-MAIL ADDRESS DELETED]>:
>>> > 久保(jflute)です。
>>> >
>>> > こんにちは、森脇さん
>>> >
>>> > "0.8.9.16-RC2" にて、反映してみました。
>>> > MS Access 利用時だけ(自動的に)演算子が
>>> > 切り替わるようになっているはずです。
>>> > (Java版のExampleでは確認が取れています)
>>> >
>>> > RCは、以下からダウンロードして下さい。
>>> >
>>> > // DBFlute.NETの最新バージョン
>>> > http://dbflute.net.sandbox.seasar.org/ja/environment/newest.html
>>> >
>>> >
>>> > #
>>> > # ちなみに、SNAPSHOTをご利用ということで、
>>> > # ご存知かもしれませんが、JOIN周りの問題を
>>> > # 解決したので、MS Accessでもそれなりに
>>> > # CBが利用できるようになっています。
>>> > # Java版の dbflute-msaccess-example で、
>>> > # @Ignoreになっていない機能は利用できます。
>>> > #
>>> >
>>> > 2010/5/26 k.moriwaki <[E-MAIL ADDRESS DELETED]>:
>>> >> 森脇と申します。
>>> >>
>>> >> ・環境
>>> >> .NET Framework 3.5
>>> >> s2container.net-1.3.17
>>> >> dbflute-0.8.9.16-SNAPSHOT
>>> >>
>>> >> ・状況
>>> >> ConditionBeanでNotEqualを使用した場合、出力されるSQLの演算子が「!=」になりますが
>>> >> MSAccessの場合は「<>」なので構文エラーになってしまいます。
>>> >> MSAccessは準サポートでConditionBeanはほぼ使えないとは理解していますが、
>>> >> 単純なSQLの発行はConditionBeanを利用したいので、MSAccessの場合は「<>」
>>> >> を出力するよう対応して頂くことは可能でしょうか?
>>> >> _______________________________________________
>>> >> seasar-dotnet mailing list
>>> >> [E-MAIL ADDRESS DELETED]
>>> >> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>> >>
>>> > _______________________________________________
>>> > seasar-dotnet mailing list
>>> > [E-MAIL ADDRESS DELETED]
>>> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>> >
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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