[Seasar-user:3633] Re: S2Pagerによる範囲条件による検索

T.Hattori [E-MAIL ADDRESS DELETED]
2006年 5月 16日 (火) 21:16:37 JST


hattoriです。

範囲条件による検索を試しているのですが、検索条件Dtoに定義するフィールド
に検索対象テーブルのフィールド以外を定義してSQLパラメータとして
使用した場合無視されてしまいます。

検索条件Dto
public class HogePagerCondition extends DefaultPagerCondition {
    private String field1; /*tableのfield1*/
    private String field2; /*tableのfield2*/
    private String field3; /*tableのfield3*/
    private String nonField1;
    private String nonField2;
・

Dao
public interface HogeDao {
    public List findByPagerCondition(HogePagerCondition dto);

外部SQL:HogeDao_findByPagerCondition.sql
SELECT * FROM ・・・
WHERE field1 = /*dto.feild1*/
/*IF dto.field2 != null */ AND field1 = /*dto.field1*/'1' /*END*/ 
↑
1)これはOK
/*IF dto.field3 != null */ AND field2 < /*dto.field2*/'1' /*END*/
↑
2)これは'<'が強制的に'='に置き換えられた

/*IF dto.nonField1 != null */ AND field4 <= 1000 /*END*/
↑
3)これはSQLの条件自体生成されない

考えていたことはフォームで受け取るvalueをそのまま検索条件としたい
場合は1)、範囲指定(selectのvalue="1" 0〜1000, "2" 1001〜2000)
で検索したい場合3)のような方法がとれないかなということでした。
そもそも使い方がおかしいのでしょうか。


On Tue, 16 May 2006 19:19:39 +0900
"T.Hattori" <[E-MAIL ADDRESS DELETED]> wrote:

> ももたろさま。hattoriです。
> 
> 早速のアドバイスありがとうございます。
> いろいろ方法がありそうですね。
> 早速いろいろ試してみたいと思います。
> 
> On Tue, 16 May 2006 18:43:43 +0900
> Momotaro Nishiumi <[E-MAIL ADDRESS DELETED]> wrote:
> 
> > ももたろです。
> > 
> > T.Hattoriさま wrote...
> > > S2Dao、S2Pagerを使って、ページングを実現したいと考えています。
> > > そこで質問なのですが、あるWebページから検索条件を入力させるとして、
> > > テーブルのもつフィールドの範囲(たとえば日付、金額で〜以上、〜以下など)
> > > などを検索条件に含める場合は、外部SQLファイルで条件を記述するとの考
> > > え方でいいのでしょうか
> > それでもよいでしょうし、QUERYアノテーションやSQLアノテーションを使う
> > 方法もあるかと思います。
> > 
> > > その場合、検索Dtoの値を条件コメントのパラメータとして使えるのでしょうか。
> > 使えます。
> >  /*dto.hoge*/
> > みたいな感じで指定できます。
> > 
> > 〜 〜  /\  〜 〜  ももたろ(西海 桃太郎)   〜 〜  
> >  〜 \((  )/ 〜   mailto:[E-MAIL ADDRESS DELETED] 〜 〜 
> >   〜 〜 〜 〜 〜 〜 http://www.momo-lab.net/  〜 〜
> > 
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://www.seasar.org/mailman/listinfo/seasar-user
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user




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