[Seasar-user:3317] Re: [S2DAO] 要望 QUERYファイル、他
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2006年 3月 2日 (木) 23:01:28 JST
まつむら(mattena31)と申します。
私も松山さんの意見に同感です。
実は http://d.hatena.ne.jp/mattena31/20050808 でも似たような
要望してました。
どうぞ、よろしくお願いいたします。
松山 大樹 <[E-MAIL ADDRESS DELETED]>さん:
> S2DAO での要望です。
>
> 1.QUERY ファイル
> 現在、SQLアノテーションはSQLファイルとして配置することができ
> ますが(順序としてはSQLファイルが、SQLアノテーションとして記述
> することができる、でしょうが)、QUERYアノテーションもQUERY ファイル
> として配置することができないでしょうか?
>
> S2DAO のサンプルになっている、EMP とDEPT テーブルを例に取ると、
> N:1 の結合を行うとき、SQLファイル(or アノテーション) では、
> ------------------------------------------
> select * from emp, dept
> where emp.deptno = dept.deptno(+)
> and emp.deptno = /*deptno*/99
> ------------------------------------------
> のような記述をすると、dept の内容が取得できません。dept の
> 内容を取得しようとすると、
> ------------------------------------------
> select emp.*, dept.dname dname_0, dept.loc loc_0 from emp, dept
> ------------------------------------------
> のように記述する必要があります。dept のカラム数が多いとき、
> かなり面倒です。
>
> 同じことをQUERY アノテーションで行う場合、テーブルの結合は
> S2DAO がやってくれるのですが、where句に与える条件が長くなった
> 場合、外部ファイルで管理した方がソースがきれいになる場合もあると思いま
す。
> 個人的に、
> public String getEmployeeByDeptno_QUERY = "/*IF deptno != null*/
deptno = /*deptno*/123\n"+
> " /*ELSE*/ 1=1\n"+
> "/*END*/";
> のような書き方がきらいなだけなのですが。
>
> これは、*.query ファイルなどで外部におけるといいな、と。
> SQL単体でのテストがしやすいように、where句より前は無視してくれると、
なおうれしいです。
Seasar-user メーリングリストの案内