SetupSelect_Table名と外出しSQLについて

528 views
Skip to first unread message

aga shige

unread,
Feb 4, 2014, 10:56:58 PM2/4/14
to dbf...@googlegroups.com
初めまして 阿形(shigeaga)と申します。
よろしくお願いいたします。

AptblにBmtblと関連づけするFKを付けてSetupSelect_Aptbl()を下記コードで実施したところ

           AptblCB cb = new AptblCB();
            cb.SetupSelect_Bmtbl();
            cb.Query().SetBumoncode_Equal(ddlBumonCode.SelectedValue);
            cb.Query().AddOrderBy_Bumoncode_Asc();
            
            if (_aptblbhv.SelectCount(cb) > 0)
            {
                gvAptblList.DataSource = _aptblbhv.SelectList(cb);

                gvAptblList.DataBind();←Bumonmeiが無いとエラーになってしまいます

                lblAlarm.Text = _aptblbhv.SelectCount(cb) + "件の部品が見つかりました";
            }
            else
            {
                gvAptblList.DataSource = _aptblbhv.SelectList(cb);
                gvAptblList.DataBind();
                lblAlarm.Text = "検索結果は0件です";
            }
        }

このような、SQL文が自動生成されています。
select  dfloc.SYOUNINCODE as c0, dfloc.BUMONCODE as c1, dfloc.MAILADDRESSAP as c2, dfloc.VERSIONNO as c3
     , dfrel_0.BUMONCODE as c4, dfrel_0.BUMONMEI as c5, dfrel_0.BUMONFURIGANA as c6, dfrel_0.VERSIONNO as c7
  from APTBL dfloc
    left outer join BMTBL dfrel_0 on dfloc.BUMONCODE = dfrel_0.BUMONCODE
 where dfloc.BUMONCODE = '0001'
 order by dfloc.BUMONCODE asc

自分としては、下記のようなSQLが生成されるようにしたいのですが無理でしょうか?

SELECT APTBL.SYOUNINCODE,
  APTBL.BUMONCODE,
  BMTBL.BUMONMEI,
  APTBL.MAILADDRESSAP
FROM APTBL
LEFT OUTER JOIN BMTBL
ON BMTBL.BUMONCODE = APTBL.BUMONCODE
WHERE APTBL.BUMONCODE = /*bumoncode*/0001
ORDER BY BMTBL.BUMONMEI

実行結果は、こうなります。

0000 0001 製造技術課 *******@hoge.jp
0003 0001 製造技術課 *******@hoge.com

外出しSqlで実行しようとしましたが、Sqlファイルが見つけられないという
エラーが出てしまいうまくいきません。

プロジェクト構成はこうなっています。

C:\Users\Shigeru\Documents\Visual Studio 2012\Projects\EquipmentSystem\EquipmentSystem\Resources\selectAptblByBumonmei.sql
 

相対パスは、outsideSqlDefinitionMap.dfpropにある、sqlDirectory = ../../../../../../../Resources
と設定しています。

開発環境は
VS2013 Pro .NetFrameworks3.0 Oracle11g Quill 1.3.18 S2Dao.net 1.3.18 DbFlute0.8.55です。

お手数おかけしますが、ご指摘ご助言の程よろしくお願いいたします。

kubo

unread,
Feb 4, 2014, 11:12:23 PM2/4/14
to DBFluteユーザの集い
jfluteです

阿形(shigeaga)さん、こんにちは。
MLでの投稿ありがとうございます!

> gvAptblList.DataBind();←Bumonmeiが無いとエラーになってしまいます。

DataBindが何をやっているかがちょっとわからないのですが、
試しに、部門名の値が取得できているか見てみてください。
こんな感じで

IList<Aptbl> list = _aptblbhv.SelectList(cb);
foreach (Aptbl aptbl in list) {
Log(aptbl.Bmtbl.Bumonmei);
}

Bumonmeiは、ネストしたBmtblにありますので、
DataBind側で「Bmtbl.Bumonmei」というように指定しないと
なのかもしれません。

> 下記のようなSQLが生成されるようにしたいのですが無理でしょうか?

これは、OrderByだけが違うって感じですかね?
(他は、書式は違えど同じ気がします

cb.Query().QueryBmtbl().AddOrderBy_Bumonmei_Asc();

で、部門名でソートされるかと思います。


> 相対パスは、outsideSqlDefinitionMap.dfpropにある、sqlDirectory = ../../../../../../../Resources
sqlDirectoryは、DBFluteクライアント(dbflute_xxx)からの相対パスになっています。
そこからは合っていますでしょうか?

あと、外だしSQLのファイルが、アセンブリの組み込みになっているか
どうか確認してみてください。
(確か.NETって、リソースファイルを実行時に読み込ませるために、
DLLに組み込ませるかどうかの設定があったように思います)

aga shige

unread,
Feb 5, 2014, 12:57:02 AM2/5/14
to dbf...@googlegroups.com
jflute様

早速のご返事ありがとうございました。

現在の状況を説明します。

追加情報:名前 'Bmtbl.Bumonmei' のフィールドまたはプロパティが選択されたデータ ソースに見つかりませんでした。

gvAptblList.DataBind()で発生しているエラー内容です。データフィールドにBmtbl.Bumonmeiとやってみましたが
同じエラーが発生しました。

IList<Aptbl> list = _aptblbhv.SelectList(cb);
foreach (Aptbl aptbl in list) {
    Log(aptbl.Bmtbl.Bumonmei);
}
においては、「製造技術課」と部門名を取得できています。

-  SelectedList Count = 2 System.Collections.Generic.IList<com.example.dbflute.basic.dbflute.ExEntity.Aptbl> {System.Collections.Generic.List<com.example.dbflute.basic.dbflute.ExEntity.Aptbl>}

+  [0] {Aptbl:{0003, 0001, *****@hoge.com, 0}(Bmtbl)} com.example.dbflute.basic.dbflute.ExEntity.Aptbl
+  [1] {Aptbl:{0000, 0001, *****@hoge.jp, 0}(Bmtbl)} com.example.dbflute.basic.dbflute.ExEntity.Aptbl

-  SyncRoot '((com.example.dbflute.basic.dbflute.AllCommon.CBean.ListResultBean<com.example.dbflute.basic.dbflute.ExEntity.Aptbl>)(list)).SyncRoot' は、型 'System.NotImplementedException' の例外をスローしました。 object {System.NotImplementedException}

Bmtblを結合できていないようです。いい話ではなくて申し訳ありません。

shigeaga

2014年2月5日水曜日 12時56分58秒 UTC+9 aga shige:

kubo

unread,
Feb 5, 2014, 3:10:47 AM2/5/14
to DBFluteユーザの集い
jfluteです

> IList<Aptbl> list = _aptblbhv.SelectList(cb);
> foreach (Aptbl aptbl in list) {
> Log(aptbl.Bmtbl.Bumonmei);
> }
> においては、「製造技術課」と部門名を取得できています。

とりあえず、データは取得できてますね。
すると、DataBind()の仕様がどんなものなのか次第かと思います。

仮に、データフィールドに Bmtbl.Bumonmei を除外したら、
正常に動作するのでしょうか?

ネストしたプロパティが利用できないのか、
それとも、そもそもEntityのリストをそのまま渡すことができないのか、
の切り分けができればと。

aga shige

unread,
Feb 5, 2014, 4:06:09 AM2/5/14
to dbf...@googlegroups.com
jflute様

shigeagaです。ご指摘事項につきまして確認しました。

Bumonmei データフィールドを削除後、gvAptblList.DataBind();したら
BumonCode、SyouninCode、MailAddressApは、正常に表示されました。
(APTBLの全項目です)

ご指摘の程、よろしくお願いいたします。

2014年2月5日水曜日 17時10分47秒 UTC+9 jflute:

kubo

unread,
Feb 5, 2014, 5:22:08 AM2/5/14
to DBFluteユーザの集い
jfluteです

なるほど、したら DataBind() でネストしたプロパティの
やり方を調べてみてください。
(できないわけないとは思うんですよねぇ。。。

もし、できないとあれば、
フラットな構造じゃないといけないということで、

A. ExEntity(Entityのサブクラス)にプロパティを追加
B. 別途画面の項目と同じ形をしたDTOを作成して詰め替え

となるかと思います。ちなみに、B がオススメです。
A だと画面ごとにプロパティを追加していかないと
いけなくなってしまうので。

ちなみに、仮にネストしたプロパティができたとしても、
Webアプリでは「B」をやる現場が多いです。
カラム名の変更などがあっても自動生成し直せば、
コンパイルエラーで検出できる(しやすい)からです。







2014-02-05 aga shige <shig...@gmail.com>:
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。
> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。

aga shige

unread,
Feb 5, 2014, 8:22:19 AM2/5/14
to dbf...@googlegroups.com

jflute様

agashigeです。

A. ExEntity(Entityのサブクラス)にプロパティを追加
B. 別途画面の項目と同じ形をしたDTOを作成して詰め替え

おすすめのBで実装して、部門名を無事表示することができました。
本当にありがとうございます。

ですが、外出しSQLを実行できなくて苦慮しています。自分がやった方法を
書きますので間違っている箇所とか、おかしなことをやっている箇所
等ありましたらご指摘の程よろしくお願いいたします。

ちなみに今日の夕飯は凝ってないカレーでした。(*^^*)

1.外出しSQLを2つのプロジェクト(EquipmentSystem、DbFluteSetup)で
  DbFluteSetupのResourcesフォルダーに保管する。

2.外出しSQLを埋め込まれたリソースに変更する。

3.CLASSPATHをDbFluteSetupフォルダーまで通す

4.string PATH_SelectBumon = "Resources\\selectAptblByBumonmei.sql"をコードへ入力

5.outsideSqlDefinitionMap.dfpropのsqlDirectory = ../Resourcesにする。
  Resources前まではCLASSPATHが通っているので上記のように設定しました

6.コードへ           
   cb.Query().SetBumoncode_Equal(ddlBumonCode.SelectedValue);
        cb.Query().QueryBmtbl().AddOrderBy_Bumonmei_Asc();
        _aptblbhv.OutsideSql().Execute(PATH_SelectBumon, ddlBumonCode.SelectedValue);
  
  を入力する
  
  _aptblbhv.OutsideSql().Execute(PATH_SelectBumon, ddlBumonCode.SelectedValue);
  
  でSqlファイルが見つからないというエラーが発生しています。

2014年2月5日水曜日 19時22分08秒 UTC+9 jflute:
> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

kubo

unread,
Feb 5, 2014, 8:40:36 AM2/5/14
to DBFluteユーザの集い
jfluteです

> おすすめのBで実装して、部門名を無事表示することができました。
おお、よかったです。
詰め替え処理の実装は、
Kuropokkur.NETのCopyGenが役にたつと思います。
http://koropokkur.net.sandbox.seasar.org


> ですが、外出しSQLを実行できなくて苦慮しています。
思い出しましたが、ひとまずビルドアクションを確認してみてください。
http://dbflute.net.sandbox.seasar.org/ja/introduction/#embeddedresource
>> > このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>> > にメールを送信します。
>> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

aga shige

unread,
Feb 5, 2014, 9:12:19 AM2/5/14
to dbf...@googlegroups.com
jflute様

夜分まで恐れ入ります。agashigeです。

>ひとまずビルドアクションを確認してみてください。

確認しました。SQLファイルのビルドアクションは埋め込まれたリソースになっています。

Kuropokkur.NETのCopyGenは、画面DTO作成に時間がかかりそうなとき、納期が厳しい
ときに利用します。教えていただきありがとうございます。

CLASSPATHをDbFluteSetupフォルダーまで通す
outsideSqlDefinitionMap.dfpropのsqlDirectory = ../Resourcesにする。
Resources前まではCLASSPATH(環境変数)が通っているので上記のように設定しました

本内容がまずいのでしょうか?ご指導の程よろしくお願いいたします。

2014年2月5日水曜日 22時40分36秒 UTC+9 jflute:
jfluteです

> おすすめのBで実装して、部門名を無事表示することができました。
おお、よかったです。
詰め替え処理の実装は、
Kuropokkur.NETのCopyGenが役にたつと思います。
http://koropokkur.net.sandbox.seasar.org


> ですが、外出しSQLを実行できなくて苦慮しています。
C:\Users\Shigeru\Documents\Visual Studio 2012\Projects\DbFluteSetup\DbFluteSetup\Resources
>> > このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>> > にメールを送信します。
>> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

kubo

unread,
Feb 5, 2014, 9:26:26 AM2/5/14
to DBFluteユーザの集い
jfluteです

> outsideSqlDefinitionMap.dfpropのsqlDirectory = ../Resources

まず、sqlDirectoryはSql2EntityするときのSQLの場所を
示すものなので、Sql2EntityでEntityなどが自動生成できて
いるのであれば、その設定はそれでいいはずです。

> 4.string PATH_SelectBumon = "Resources\\selectAptblByBumonmei.sql"をコードへ入力

Resourcesを外して selectAptblByBumonmei.sql だけでやってみたらどうでしょう?

また、そもそも、パスの定義は、Behaviorに自動生成されるはずです。
SQLファイルをExBhvフォルダに配置してSql2Entityしてみてください。
(SQLファイルの置き場は Behavior のクラスと同じ場所が定番

String path = AptblBhv.PATH_selectAptblByBumonmei;

という感じに利用できる筈です。

ちょっとまだDBFlute.NETの方のExampleがGithubに移行できてなくて、
Subversionになってしまいますが、こちらのサンプルが参考になればと。
https://www.seasar.org/svn/sandbox/dbflute.net/trunk/dfnet-basic-example


# 今日はお昼にカレーでした

taknb2nch

unread,
Feb 5, 2014, 10:38:15 AM2/5/14
to dbf...@googlegroups.com
こんにちは、taknb2nchです。

.NET版の外出しSQLはハマりますよね。

内容が古いかもしれませんが以前私が纏めた内容です。
すいません、しばらく触ってないので変わっていたら、、、少しでも参考になればいいのですが。
http://d.hatena.ne.jp/taknb2nch/20130502/1367477996

上記内容では、
DBFluteで自動生成するファイル群+外出しSQLを1つのプロジェクト(dll)にしています。
それをメインプロジェクトで参照して使用することを想定しています。(確か)

.NET版ではCLASSPATHがどうこうという話はなかったように記憶していますが、
最近変わったんですか->jfluteさん

ちなにみ私も
>B. 別途画面の項目と同じ形をしたDTOを作成して詰め替え
を採用しています。

2014年2月5日 23:26 kubo <dbf...@gmail.com>:
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

aga shige

unread,
Feb 5, 2014, 10:59:09 AM2/5/14
to dbf...@googlegroups.com
agashigeです。

深夜に申し訳ありません。

行った結果を申し上げます。

>まず、sqlDirectoryはSql2EntityするときのSQLの場所を
>示すものなので、Sql2EntityでEntityなどが自動生成できて
>いるのであれば、その設定はそれでいいはずです。
>また、そもそも、パスの定義は、Behaviorに自動生成されるはずです。
>SQLファイルをExBhvフォルダに配置してSql2Entityしてみてください。
>(SQLファイルの置き場は Behavior のクラスと同じ場所が定番

>String path = AptblBhv.PATH_selectAptblByBumonmei;

>という感じに利用できる筈です。

>Resourcesを外して selectAptblByBumonmei.sql だけでやってみたらどうでしょう

Sql2Entity はSuccessで問題なく終了しています。selectAptblByBumonmei.sqlも認識しています。
(ExBhvフォルダーへSQLファイルを配置してあります)Entityなどが自動生成されているか
確認しましたがそれらしきフォルダーは見当たりませんでした。
String path = AptblBhv.PATH_selectAptblByBumonmei; プロパティーの自動補完には
出てきませんでした。
PathのResourcesを外してみましたが駄目でした。

明日も引き続き頑張って作業します。

jflute様、お手を煩わせますが引き続きご指導の程よろしくお願いいたします。

2014年2月5日水曜日 23時26分26秒 UTC+9 jflute:

kubo

unread,
Feb 5, 2014, 11:12:22 AM2/5/14
to DBFluteユーザの集い
jfluteです

> Entityなどが自動生成されているか
> 確認しましたがそれらしきフォルダーは見当たりませんでした。

まず、Entityが自動生成されていないというとなると、
そもそも Sql2Entity としてうまく動作してないと言えます。
.NETの場合「プロジェクトへ追加」をしないと認識されないので、
注意してみてください。
(Koropokkur.NETのもう一つの機能はこれを支援してくれます)
http://koropokkur.net.sandbox.seasar.org/vsarrange.html

> String path = AptblBhv.PATH_selectAptblByBumonmei; プロパティーの自動補完には
> 出てきませんでした。

実際に、AptblBhv.csもしくはBsAptblBhv.csを見ても、
Definitionコメントのところに PATH_... が定義されてないですかね?
されていなければ、正しくDBFluteが認識していない証拠です。

> selectAptblByBumonmei.sqlも認識しています。

というのは、コンソールのログで実行されているということでしょうか?
例えば試しに、SQLをわざと落ちるように修正してSql2Entityを実行したら、
Sql2Entity自体がエラーで落ちるでしょうか?

(明日でOKですよー


パスについては、taknb2nchさんのブログが一番わかりやすいです。
(ありがとうございます!)


> .NET版ではCLASSPATHがどうこうという話はなかったように記憶していますが、
> 最近変わったんですか->jfluteさん

プロジェクトへの追加ってこと...かな!?


> ちなにみ私も
> >B. 別途画面の項目と同じ形をしたDTOを作成して詰め替え
> を採用しています。

ありがとうございます。
.NETでも同じで安心しました(^^。


2014-02-06 aga shige <shig...@gmail.com>:
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

kubo

unread,
Feb 5, 2014, 11:23:48 AM2/5/14
to DBFluteユーザの集い
jfluteです

一つ気がつきましたSQLファイルは、

[対応するBehaviorの名前]_select[業務名].sql

にしてください。

 AptblBhv_selectAptblByBumonmei.sql

という感じですかね。
これを、ExBhv配下に置きます。
すると、

 String path = AptblBhv.PATH_selectAptblByBumonmei;

ができるはずです。


以下、DBFluteのExampleの構成です。
sqlDirectoryは未設定ですね。
DBFluteクライアント(dbflute_xxx)と外だしSQLとの
関係性を比べてみてください。


dfnet-base-example
 |-dbfute_exampledb
 | |-dfprop // sqlDirectoryは未設定(デフォルト)
 |-...
 |-source
  |-DfExample
  | |-DBFlute
  | | |-ExBhv
  | | | |-MemberBhv_selectSimpleMember.sql // こういう形式で
  | | |-ExEntity
  | |  |-Customize
  | |   |-SimpleMember.cs // 自動生成される
  | |-DfExample.csproj
  |-DfExample.sln

2014-02-06 kubo <dbf...@gmail.com>:

aga shige

unread,
Feb 5, 2014, 9:46:13 PM2/5/14
to dbf...@googlegroups.com

こんにちは agashigeです。

taknb2nch様

ブログの記事を読まさせていただきました。完全に理解できて
いません。何回も読ませていただきます。ありがとうございました。

jflute様

AptblBhvにはDefinition自体が存在していません。
BsAptblBhvには、Definitionありましたがパス設定されていませんでした。

Sqlファイルも実行できないようにして、sql2entityを実行しましたが
Sql2Entity自体がエラーで落ちませんでした。

>まず、Entityが自動生成されていないというとなると、
>そもそも Sql2Entity としてうまく動作してないと言えます。
>.NETの場合「プロジェクトへ追加」をしないと認識されないので、
>注意してみてください。
>(Koropokkur.NETのもう一つの機能はこれを支援してくれます)

上記内容は作成されたAptblByBumonmei.csをプロジェクトへ追加するのを
忘れずに行うということでよろしいでしょうか?

jflute様 taknb2nch様

外出しSqlを実行するには、outsideSqlDefinitionMap.dfprop、
basicInfoMap.dfpropの両方の設定を変えなければならないと
いう認識でよろしいでしょうか?

outsideSqlDefinitionMap.dfprop
  
   #; sqlDirectory = ../src/main/resources
  
   #; sql2EntityOutputDirectory = ../src/main/java
  
   defaultPackage:←新規に追加
  
   #; sqlPackage = $$PACKAGE_BASE$$

basicInfoMap.dfprop

   ; packageBase = com.example.dbflute.basic.dbflute←これはOK?

   #; generateOutputDirectory = ../src/main/java
  
   omitDirectoryPackage = Aaa.Bbb.Ccc←これは新規に追加する?

Java用のパスはC#用に全て置き換えするのでしょうか?


ExBhvフォルダーへ配置したSQLファイルは、DBFlute.NET
のプロジェクトへ読み込みました。(一度プロジェクトを
削除して作り直しました)
これは埋め込まれたリソースに変えてあります。
(ExEntityにCustomizeフォルダーはできていませんでした)


outsideSqlDefinitionMap.dfprop Path変更について

DBFlute.NETプロジェクトのExBhvの絶対パスとソースの名前空間を元にして
作成してみましたので、ご指摘の程よろしくお願いいたします。

絶対パス(DbBFlute.NETのSqlファイルを配置してある場所)

C:\Users\Shigeru\Downloads\Seasar2\DbFluteSetup\EqProject\
 dbflute_EquipmentSystemProj\dbflute_dfclient\source\com\
 example\dbflute\basic\dbflute\ExBhv

名前空間(ex outsideSqlDefinitionMap.dfprop)

 defaultPackage = com.example.dbflute.basic.dbflute
 
  sqlPackage = ExBhv

[対応するBehaviorの名前]_select[業務名].sqlで
ExBhv配下に置いてみましたが、String path = AptblBhv.PATH_selectAptblByBumonmei;
で自動補完できませんでした。申し訳ありません。

DBFluteの構成を見ていて思ったんですが、DBFlute用VSのプロジェクトをDBFlute.NETと同じ
場所に配置したほうがいいのかなと考えました。この考えであっているのかご教授
ください。よろしくお願いいたします。

2014年2月6日木曜日 1時23分48秒 UTC+9 jflute:
>> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

aga shige

unread,
Feb 5, 2014, 11:20:26 PM2/5/14
to dbf...@googlegroups.com
   jflute様  taknb2nch様

outsideSqlDefinitionMap.dfprop Path変更について

DBFlute.NETプロジェクトのExBhvの絶対パスとソースの名前空間を元にして
作成してみましたので、ご指摘の程よろしくお願いいたします。

絶対パス(DbBFlute.NETのSqlファイルを配置してある場所)

C:\Users\Shigeru\Downloads\Seasar2\DbFluteSetup\EqProject\
 dbflute_EquipmentSystemProj\dbflute_dfclient\source\com\
 example\dbflute\basic\dbflute\ExBhv

 outsideSqlDefinitionMap.dfprop 修正実施
 

名前空間

 defaultPackage = com.example.dbflute.basic.dbflute
 
  sqlPackage = ExBhv

[対応するBehaviorの名前]_select[業務名].sqlで
ExBhv配下に置いたSQLファイルが。String path = AptblBhv.PATH_selectAptblByBumonmei;
でコード自動補完できるようになりました。

 ですがソースを実行すると名前空間はあっているし、保管している場所を指定
 していると思うのですが・・・
 
The outsideSql was Not Found!

[Advice]
Please confirm the existence of your target file of outsideSql on your classpath.
And please confirm the file name and the file path STRICTLY!

[Specified OutsideSql Path]
com.example.dbflute.basic.dbflute.ExBhv.AptblBhv_selectAptblByBumonmei.sql

 のようなエラーが出てきてしまいます。

 BsAptblBhv.csには、パスが記入されています。
        /*df:beginQueryPath*/
        public static readonly String PATH_selectAptblByBumonmei = "selectAptblByBumonmei";
        /*df:endQueryPath*/
    
    AptblBhvにはパスの記入はありませんでした。

 まずはご報告まで。

kubo

unread,
Feb 5, 2014, 11:41:54 PM2/5/14
to DBFluteユーザの集い
jfluteです

>  BsAptblBhv.csには、パスが記入されています。
お、ありがとうございます。
とりあえず、認識されたようですね。
これが正しい挙動です。

ただ、defaultPackage とか sqlPackage とかは、
デフォルトの構成からカスタマイズしたいときだけに
使うものなので、まずは設定しなくていいかと思います。

もし、可能であれば、Exampleの構成と同じようにして、
まずは外だしSQLが動く状態にしてから
カスタマイズする方がよいかと思います。
(Exampleでは、パスの設定とか全くせずに動いているので

basicInfoMap.dfpropは、.NET風に変えてもいいかと思います。
例えば、Exampleではこのようになっています。

; packageBase = DfExample.DBFlute






2014-02-06 aga shige <shig...@gmail.com>:
>>> >> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>>> >> にメールを送信します。
>>> >> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>>> >> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>>> >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

taknb2nch

unread,
Feb 6, 2014, 4:18:23 AM2/6/14
to dbf...@googlegroups.com
こんにちは、taknb2nchです。


"既定の名前空間"を使用されていますか?
もしそうだとしたらちょっとしたコツが必要です。

"既定の名前空間"を使用されないなら(Java風)
flatDirectoryPackage、omitDirectoryPackageの設定をなしにすれば
素直に動きそうですが。

とりあえず最新をダウンロードして、
シンプルなプロジェクト(既定の名前空間あり)を作ってみました。
https://github.com/taknb2nch/DBFluteSample

ゼロから構築する際にハマりそうなところをまとめてみました。


オラクルですとドライバ変更して、DB周りの設定変更、
/dbflute_dfclient/playsql/replace-schema.sqlの修正、
(create文が書かれています)
くらいで動作するのではないでしょうか。

2014年2月6日 13:41 kubo <dbf...@gmail.com>:

taknb2nch

unread,
Feb 6, 2014, 4:20:32 AM2/6/14
to dbf...@googlegroups.com
taknb2nchです、連投すいません。

リポジトリ名だけ変更させてもらいました。こちらでお願いします。
https://github.com/taknb2nch/DBFlute.NET-Sample

2014年2月6日 18:18 taknb2nch <takn...@gmail.com>:

aga shige

unread,
Feb 6, 2014, 7:15:16 AM2/6/14
to dbf...@googlegroups.com
こんばんは agashigeです。

jflute様 taknb2nch様

外出しSQLですが、ファイルがThe outsideSql was Not Found!
とならないで、list.Add(_aptblbhv.OutsideSql().SelectList<AptblDto>(PATH_SelectBumon, ddlBumonCode.SelectedValue));
が実行されました。本当にありがとうございました。(心がこもった回答に励まされました)
jflute様のフォルダー構成、taknb2nch様の名前空間のふたつが決め手でした。

実行できて気になることがふたつ残りました。

1.Customizeフォルダーを作成してselectしたのですが
  hoge.cs(Entity)は自動生成されませんでした。

2.外出しSQLでは、バインド変数をソースコード上から指定できるのでしょうか?

後私の職場はそんなに大きくなく、コード管理システムを使ったことが
ありません。taknb2nch様のテンプレートはぜひ手に入れたく使用方法
教えていただけないでしょうか?(お恥ずかしい限りです)

お手数おかけしますが、もう少しお付き合いください。
よろしくお願いいたします。

2014年2月6日木曜日 18時20分32秒 UTC+9 taknb2nch:
>>>>> >> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>>>>> >> にメールを送信します。
>>>>> >> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>>>>> >> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>>>>> >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>>>
>>> --
>>> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>>> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。
>>> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>>> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>>> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>>
>> --
>> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

kubo

unread,
Feb 6, 2014, 7:23:04 AM2/6/14
to DBFluteユーザの集い
jfluteです

agashigeさん、こんばんは
とりあえず動いたということで良かったですー。

> 1.Customizeフォルダーを作成してselectしたのですが
>   hoge.cs(Entity)は自動生成されませんでした。

たぶん、外だしSQLの中に「Sql2Entityマーク」がないのでは?

-- #df:entity#

-- !df:pmb!
-- !!AutoDetect!!

// 2Way-SQLを実装
http://dbflute.seasar.org/ja/manual/function/ormapper/outsidesql/howto.html#writetwowaysql

Java版だとプラグインでその辺をサクッとやってくれるのですが、
C#だとそれがないので、手動(コピー)で入れちゃってください。

-- #df:entity#があると、Entityが自動生成されます。
-- !df:pmb!があると、引数DTO(ParameterBean)を自動生成されます。

> 2.外出しSQLでは、バインド変数をソースコード上から指定できるのでしょうか?

mb.MEMBER_NAME like /*pmb.MemberName*/'M%'

こんな感じで書いてみてください。
バインド変数コメントと言います。

// バインド変数コメント
http://dbflute.seasar.org/ja/manual/function/ormapper/outsidesql/pmcomment.html#bindvariable

-- !df:pmb!
-- !!AutoDetect!!

が宣言されていれば、

BumonPmb pmb = new BumonPmb();
pmb.MemberName = "S";
... = _aptblbhv.OutsideSql().SelectList<AptblDto>(PATH_SelectBumon, pmb);

こんな感じで呼び出せるはずです。



2014-02-06 aga shige <shig...@gmail.com>:
>> >>>>> >> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>> >>>>> >> にメールを送信します。
>> >>>>> >> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >>>>> >> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >>>>> >> その他のオプションについては、https://groups.google.com/groups/opt_out
>> >>>>> >> にアクセスしてください。
>> >>>
>> >>> --
>> >>> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>> >>> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>> >>> にメールを送信します。
>> >>> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >>> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >>> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>> >>
>> >> --
>> >> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>> >> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>> >> にメールを送信します。
>> >> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

aga shige

unread,
Feb 6, 2014, 9:29:21 AM2/6/14
to dbf...@googlegroups.com

jflute様

 2Way-SQLを実装、バインド変数コメントの自動生成とOracle
からのデータ取得全て確認ができました。

明日からのシステム開発に、DBFlute.NETを十二分に活かせるよう精進していきます。

暖かいコメントを何回も戴き、ありがとうございました。

又何かありましたら、投稿させて戴きますので
よろしくお願いいたします。

agashige

2014年2月6日木曜日 21時23分04秒 UTC+9 jflute:
>> >>>>> >> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>> >>>>> >> にメールを送信します。
>> >>>>> >> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >>>>> >> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >>>>> >> その他のオプションについては、https://groups.google.com/groups/opt_out
>> >>>>> >> にアクセスしてください。
>> >>>
>> >>> --
>> >>> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>> >>> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>> >>> にメールを送信します。
>> >>> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >>> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >>> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>> >>
>> >> --
>> >> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>> >> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>> >> にメールを送信します。
>> >> このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >> http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

kubo

unread,
Feb 6, 2014, 10:23:57 AM2/6/14
to DBFluteユーザの集い
jfluteです

agashigeさん、よかったです。
Sql2Entityをしっかり使うこなすことで、
DBFluteのパワーをしっかり堪能できるかと思います。

また、ConditionBeanでできることも多いですから、
どうやって実装したら良いのかってわからなくなったら、
また気軽にMLで質問してくださいね。
最初にコツをつかめば後はとっても楽になりますから。


taknb2nchさん

フォローありがとうございます。本当に助かります。
一足先にGithubにExampleをあげて頂いちゃいましたね^^
自分もとっととdfnet-basic-example移行しますね。


なんだか、あまりに久しぶりの.NETで、
どちらかというとちゃんと動くのか心配に
なってしまうくらいなのでしたが、
まだまだアプローチしていかないとですね。

taknb2nch

unread,
Feb 6, 2014, 11:33:14 AM2/6/14
to dbf...@googlegroups.com
こんにちは、taknb2nchです。

agashigeさん
無事動いたようでなによりです。
明日からの開発がんばってください!

> taknb2nch様のテンプレートはぜひ手に入れたく使用方法
> 教えていただけないでしょうか
大したものじゃありませんのでご自由にご利用いただいて結構です。
ただ私がgitで使うのにいやらしいことをしていますので、
すぐにお使いいただけるものを後日ご案内させていただきますので
少々お待ちください。
--
お急ぎの場合、
https://github.com/taknb2nch/DBFlute.NET-Sample
のライトナビ一番下の「Download ZIP」からダウンロードできると思いますが、
src以下のファイルの改行コードをCRLFに変換して頂く必要がございます。


jfluteさん
やはり"既定の名前空間"がキモですね。
スッキリ解決するのに当時かなり時間がかかりました。

いつかシンプルなテンプレートをまとめておこうと思ったのでいい機会になりました!
C#も進化してますのでもっとうまく書けないかなと思う時もあります。
(すぐには思い出せませんが)
とりあえずはS2Dao依存をなんとかしたいです。

2014年2月7日 0:23 kubo <dbf...@gmail.com>:
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

aga shige

unread,
Feb 6, 2014, 12:20:42 PM2/6/14
to dbf...@googlegroups.com

taknb2nch様

お礼を言わず申し訳ありません。
taknb2nch様の絶妙な登場のおかげで何とかここまで
たどり着けました。ありがとうございました。

>大したものじゃありませんのでご自由にご利用いただいて結構です。
>ただ私がgitで使うのにいやらしいことをしていますので、
>すぐにお使いいただけるものを後日ご案内させていただきますので
>少々お待ちください。

待っていますので大丈夫です。お手数おかけしますが
よろしくお願いいたします。本スレッドでお知らせいただけると
大変助かります。

又何かありましたら、投稿させて戴きますので
よろしくお願いいたします。

agashige


2014年2月7日金曜日 1時33分14秒 UTC+9 taknb2nch:
> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

kubo

unread,
Feb 9, 2014, 7:15:36 AM2/9/14
to DBFluteユーザの集い
jfluteです


取り急ぎですが、こんなページ作ってみました。

// ひとめでConditionBean | DBFlute.NET
http://dbflute.net.sandbox.seasar.org/ja/manual/function/ormapper/conditionbean/hitomecb.html

C#のコード例となっています。
まずはConditionBean。

ConditionBeanをしっかり使いこなせば、
そもそも外だしSQLの数が減るかと思います。
.NET版でも、まあそれなりに機能は充実しています。
(あっ、ScalarConditionとかサポートしてたんだぁとか...^^)


あと、DBFlute.NETの紹介のところで、
ほんの少しだけですが「既定の名前空間」について書いておきました。
とにかく、SQL見つからなかったらここを疑えってかんじですね。。。
>> > このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>> > にメールを送信します。
>> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

aga shige

unread,
Feb 9, 2014, 8:40:45 AM2/9/14
to dbf...@googlegroups.com
jfluteさん

こんばんは agashigeです。

.Net マニュアル作成 ありがとうございました。あと、お疲れ様です。

セットアップができてからは、jfluteさんが書かれた?技術評論社様の
サイトを繰り返し読みと、実際のシステムでConditionBeanを書いて
みるを行っています。サイト読んでみてほとんどのSQLは記述できるんだなあ
と驚いています。(あまり参考にはならないかもしれませんが、ひとつのクラスの
コード行数がConditionBean使用前 250行 使用後 100行になりました。私の書いた
クラスは無駄が多いので・・・)

今回書いていただいたマニュアルは印刷して、リファレンスに使用します!!

2014年2月9日日曜日 21時15分36秒 UTC+9 jflute:
>> > このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>> > にメールを送信します。
>> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

taknb2nch

unread,
Feb 10, 2014, 1:02:03 AM2/10/14
to dbf...@googlegroups.com
agashigeさん

こんにちは、taknb2nchです。


遅くなってすいません、以下にまとめてあります。(前回のリポジトリは削除します)
https://github.com/taknb2nch/DBFlute.NET-template

gitをお使いでないようであれば、
ライトナビの「Download ZIP」からダウンロードして解凍してください。

私が使用するであろう最低限の設定をしています(と思います)。

・基本設定
・外出しSQLのパスを解決するため追加設定
・共通項目設定
・区分値定義

・App.configの切り替え

その他詳しいことはjfluteがまとめられている内容を熟読されることをお勧めします。

2014年2月9日 22:40 aga shige <shig...@gmail.com>:
>> >> > このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>> >> > にメールを送信します。
>> >> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>> >
>> > --
>> > このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>> > このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com
>> > にメールを送信します。
>> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。

aga shige

unread,
Feb 10, 2014, 6:48:15 AM2/10/14
to dbf...@googlegroups.com
こんばんは taknb2nch 様

>ライトナビの「Download ZIP」からダウンロードして解凍してください。
 
 本日ダウンロードいたしました。ありがとうございました。
(社内で展開するために使わせていただきます)

>その他詳しいことはjfluteがまとめられている内容を熟読されることをお勧めします。

 技術評論社様、Java版のマニュアルサイトをよく読んでDBFlute.NETを活用いたします。
 (いつの日か、jfluteさんとtaknb2nchさん共著のDBFlute技術書が出版されるその日も
  待っています(*^^*) )

2014年2月10日月曜日 15時02分03秒 UTC+9 taknb2nch:
>> >> > このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>> >> > にメールを送信します。
>> >> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> >> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> >> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>> >
>> > --
>> > このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
>> > このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com
>> > にメールを送信します。
>> > このグループに投稿するには、dbf...@googlegroups.com にメールを送信してください。
>> > http://groups.google.com/group/dbflute からこのグループにアクセスしてください。
>> > その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
>
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+unsubscribe@googlegroups.com にメールを送信します。

kubo

unread,
Feb 10, 2014, 8:40:38 AM2/10/14
to DBFluteユーザの集い
jfluteです

もともとSeasarのサーバーの方にあったExampleを、
(ようやっと)Githubに移行しました。(でも動作確認できてないけど><)

https://github.com/seasarorg/dbflute.net-example

Exampleのプロジェクト構成はブラウザからでも参照できます。
https://github.com/seasarorg/dbflute.net-example/tree/master/dbflute.net-quill-example



> DBFlute技術書
わー

taknb2nch

unread,
Feb 10, 2014, 9:50:52 AM2/10/14
to dbf...@googlegroups.com
こんにちは、taknb2nchです。

> その他詳しいことはjfluteがまとめられている内容を熟読されることをお勧めします。
敬称がぬけてました、申し訳ございません、jfluteさん。

> DBFlute技術書
わーわー

2014年2月10日 22:40 kubo <dbf...@gmail.com>:
> --
> このメールは Google グループのグループ「DBFluteユーザの集い」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、dbflute+u...@googlegroups.com にメールを送信します。
Reply all
Reply to author
Forward
0 new messages