[Seasar-user:20133] 【DBFlute】 (Query)DerivedReferrerについて
金子 雄一
[E-MAIL ADDRESS DELETED]
2010年 9月 9日 (木) 19:24:22 JST
お世話になります。
金子です。
掲題の件にて、質問をさせてください。
<やりたいこと>
基点テーブルのカラム(ColAとします)と、
子テーブルのカラム(ColBとします)のMAX値をCBで比較したい。
SQL的には、以下の感じになります。
select
・・・・
from
・・・・
where
ColA >= (select max(ColB) from 子テーブル where 未削除)
これを、CBで実装することは可能なのでしょうか?
ColumnQueryと組み合わせてみたのですが、
実行時に例外となりました。
コード的には、以下のような感じです。
chkoutHdrFilCB.columnQuery(new SpecifyQuery<ChkoutHdrFilCB>() {
@Override
public void specify(ChkoutHdrFilCB cb) {
// TODO Auto-generated method stub
}
}).greaterEqual(new SpecifyQuery<ChkoutHdrFilCB>() {
@Override
public void specify(ChkoutHdrFilCB cb) {
cb.specify().derivedReturnHdrFilList().max(new
SubQuery<ReturnHdrFilCB>() {
@Override
public void query(ReturnHdrFilCB subCB) {
// TODO Auto-generated method stub
}
},aliasName)
}
});
想像するに、DBFlute-379にあった、型の違いによる、
安全性が担保できないというような理由で、
非サポートなのかもと思いますが…。
既存で、すでに、CBで実装されて稼働しおり、
そこに、さらに、上記のような条件を加える必要が出てきたため、
ちょっと、どう対処しようかと思い、投稿させていただきました。
(ページング処理と、LoadReffererがさらにからんでいるため、
外出しSQLにするのも、ちょっと厳しく、
ページングをやめ、(Specify)DerivedReferreで、Max値を取得して、
Javaコード側で、条件を見つつ、自前でページング処理を行うと、
パフォーマンス的に落ちてしまうため、
ちょっと、どうしたものかという状態です。)
バージョン
DBFlute-0.9.7.3(最新版)
ご不明な点がありましたら、ご連絡ください。
以上、よろしくお願いいたします。
--
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
金子 雄一 Yuichi Kaneko
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
Seasar-user メーリングリストの案内