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