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