[Seasar-user:3588] [S2DAO]Bean プロパティを使った SQL アノテーションで List 取得ができない
h-hide21
[E-MAIL ADDRESS DELETED]
2006年 5月 10日 (水) 08:26:54 JST
橋本と申します。既出なことであれば大変恐縮ですがその旨の
回答で結構ですのでご指示ください。
また稚拙な問題で申し訳ありませんがよろしくお願いします。
S2Dao-1.0.31 + Oracle 9iR9.2 にて
表hogeに対し、Daoに定義したあるメソッドに対しSQLアノテー
ションを
使用し、そのSQL文中にはBeanによるプロパティ値を埋め込み
ました。
--表hogeの作成
create table hoge
(
foo1 varchar2(10) not null,
foo2 varchar2(10) not null,
foo3 number,
date_foo date default
to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd') not
null
);
--主キーの作成
alter table hoge add constraint pk_hoge primary key (foo1,
foo2, date_foo);
hogeDaoインターフェースを実装したクラスでメソッド
getGroupList(Hoge hoge)を呼び出すと、
//hogeDaoインターフェース
List getGroupList(Hoge hoge);
static final String getGroupList_SQL =
"SELECT foo1, foo2, sum(foo3) AS foo3 "
+ "FROM HOGE "
+ "WHERE date_foo =
TO_DATE(/*hoge.date_foo*/'2000-01-01','yyyy-mm-dd') "
+ "GROUP BY foo1, foo2";
DEBUG SELECT foo1, foo2, sum(foo3) AS foo3 FROM HOGE WHERE
date_foo = TO_DATE('2006-05-10','yyyy-mm-dd') GROUP BY
foo1, foo2
DEBUG 論理的なコネクションを取得しました
DEBUG 論理的なコネクションを閉じました
DEBUG getGroupList Size :0
としてSQLが生成され、発行SQL文はOracle上(SQL*Plus)で
取得でき得るものと確認はできたのですが、このhogeDaoを
持つクラスでgetGroupList(Hoge hoge)を呼び出すと0件
となり、例外もなく通過されます。
結局、hogeDao#getHogeList(HogeDto dto)のSQLアノテーショ
ンにおいて、
Beanプロパティによる埋め込みコメントをやめ、引数も
StringにしたことでListの件数が正しく取得することが
できました。
List getGroupList2(String date_foo);
static final String getGroupList2_ARGS = "date_foo";
static final String getGroupList2_SQL =
"SELECT foo1, foo2, sum(foo3) AS foo3 "
+ "FROM HOGE "
+ "WHERE date_foo =
TO_DATE(/*date_foo*/'2000-01-01','yyyy-mm-dd') "
+ "GROUP BY foo1, foo2";
DEBUG SELECT foo1, foo2, sum(foo3) AS foo3 FROM HOGE WHERE
date_foo = TO_DATE('2006-05-10','yyyy-mm-dd') GROUP BY
foo1, foo2
DEBUG 論理的なコネクションを取得しました
DEBUG 論理的なコネクションを閉じました
DEBUG getGroupList2 Size :4
本質的な使用方法の間違い、と言われるのかもしれませんが
どこがイレギュラな利用であるのかをご教授いただけたら
幸いです。
--------------------------------------
Yahoo! JAPAN 10th Anniversary Special Feature
--- Enjoy Yahoo! Auction with Yahoo! Mail !! ---
http://pr.mail.yahoo.co.jp/auction/
Seasar-user メーリングリストの案内