[Seasar-user:20678] Re: 動的のO/Rマッピング

kubo [E-MAIL ADDRESS DELETED]
2011年 3月 23日 (水) 21:26:20 JST


久保(jflute)です。

状況が見えてきました。
ありがとうございます。

すると、要件を簡単にまとめると、
「運用者が書く動的なSQLを実行して結果をCSVに」
ということになるかと思います。

これは特殊な要件であると同時に、フレームワークの
枠組みの中で実現するメリットもないと考えられるので、
仰るとおりですが、こういう場面では遠慮なくJDBCを
使って独自の仕組みを作るのがいいと思います。

2011/3/23 Nguyen Vu Hung (VNC) <[E-MAIL ADDRESS DELETED]>:
> 久保さん、
>
> メールをありがとうございます。vuhungです。
>
> インラインで返答させていただきます。
>
> (2011/03/23 14:50), kubo wrote:
>
> yomikomi.txtファイルにて
> 1行目:<table name 1>, <table name 2>
> 2行目:select文の記載
>
> の1行目のテーブル名ってそもそも必要なのでしょうか?
>
> 確かにデータ抽出には不要ですね。
> #1行目のテーブル名は抽出したcsvファイル名に使うものです。
>
> 2行目に実行するSQLがあるなら、それを単に実行して、
> テーブル数が幾つであろうが(どんなテーブルがあろうが)、
> そのSQLの結果を(select句のままに)csvファイルに
> 落とせば良いように思えるのですがどうなのでしょう?
>
> シンプルな場合はその通りでございます。
> select句を実行した結果をJava上のオブジェクトに保存しておき、csvファイルに落とす流れになります。
>
> 抽出だけでなく加工する必要があると書かれていますので、
> その加工作業にテーブル名が必要なのでしょうか?
>
> テーブル名が不要です。
>
> 言葉足らずですが、「加工」というのは抽出した値をcsvファイルに入れる・入れない、
> または日付フォーマットを変えるくらいです。
>
> また、1行目に列挙するテーブル数に上限はあるのでしょうか?
>
> 現状では最大3テーブルまでとのことですが、
> その制限をなくしたいので質問いたしました。
>
> 以前のメールでの質問と内容が重複しますが、
> 基点テーブルは決まっていて、例えば「会員」、
> その関連テーブルをどれだけ一緒に取得するかどうか、
> が動的に変わるのでしょうか?
>
>>
>> http://dbflute.sandbox.seasar.org/ja/manual/reference/example/exampledb.html
> 動的に変わりません。
>
> それとも、基点テーブルは「会員」かもしれないし、
> 「購入」かもしれないし、と完全にどんなテーブルが
> 来るのかわからないのでしょうか?
>
> その通りです。
>
> おっしゃっている通りに、難しそうですので、
> jdbcを使うことにしました。
>
> 宜しくお願いします。
>
> 2011/3/23 Nguyen Vu Hung (VNC) <[E-MAIL ADDRESS DELETED]>:
>
> 金子さん、久保さん、
>
> いつもお世話になっております。vuhungと申します。
>
> 課題の発生契機としは、複数のテーブルから、運用者が
> 設定可能なSELECT文をSeasarで抽出・加工し、csvファイルに落とす
> 夜間に実行するバッチを作成したいのです。
>
> 以前のメールで書きましたように、「SELECT文」では、1つまたは
> 複数のテーブルの可能性があります。
>
> 例として、
>
> yomikomi.txtファイルにて
> 1行目:<table name 1>, <table name 2>
> 2行目:select文の記載
>
> 「yomikomi.txtファイル」ファイルはJAVAプログラマの管理対象外で、
> select文のとおりにデータを抽出し、加工作業を加え、csvファイルを落とせばよいです。
>
> 厄介なのは、一行目のテーブル数がJAVA側では想定の範囲外です。
>
> なので、外出しSQLであろが, ConditionBean(条件付きBean)であろが、
> 結局、形の決まったBeanにマッピングしなければならないと思っています。
>
> [Seasar-user:18921] 【DBFlute】 SQL文の直接実行
> http://ml.seasar.org/archives/seasar-user/2009-November/018922.html
>
> これは別の課題だと思います。
>
> #もちろん、標準のjdbcを使う手はあります。
>
> ご不明点がありましたらご連絡下さい。
>
> 宜しくお願いします。
>
>
> (2011/03/22 10:05), kubo wrote:
>
> 久保(jflute)です。
>
> こんにちは、Nguyen さん
>
> 難しい問題と思われるので、より詳しい情報を
> 提供して頂けると助かります。
>
> (運用者が)SELECT文をテキストファイル記入させますが、
>
> この点がちょっとこちらでは理解できて
> いませんので、もっと詳細な説明を下さい。
>
> これは、アプリケーションの利用者(運用者)が、
> テキストファイルにSQL文(select文)を書いて、
> そのSQLをアプリケーションで実行するという
> ことでしょうか?
>
> もし、そうであるならば、結合の方法以前に、
> そもそもその機能をどうやって実現しようと
> 想定していますでしょうか?
> (ConditionBean or OutsideSql?)
>
> また、そのSQLの結果はどのような目的に
> 利用するのでしょうか?(画面に表示する?)
>
> そのテーブル内のテーブル数は事前に想定できない場合は
> (DBFluteのプログラマが)O/Rマッピングの対応はどうすればよいでしょうか
>
> DBFlute の ExampleDB で例えると、
>
> // ExampleDB | DBFlute
> http://dbflute.sandbox.seasar.org/ja/manual/reference/example/exampledb.html
>
> 検索対象が「会員」だけでなく、
> 「会員ステータス」を含んだり「会員退会情報」を含んだりと、
> FKで結ばれる、もしくは、FKで結ぶことが可能なテーブルを
> (運用者の)状況次第で動的に取得(結合)したりしなかったりする、
> と考えてよろしいでしょうか?
>


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