[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 メーリングリストの案内