[Seasar-user:2334] Re: 【 S2Dao 】 [ 要望 ] OrderBy の動的生成 ( 埋め込み変数コメント ) について

上原 慶三 keizou
2005年 7月 7日 (木) 02:09:48 JST


上原です。

> しかし、OrderBy指定が不要な場合もあります。
> 最初は、OrderBy指定が無しの場合は主キーの昇順でDefaultソートと
> 考えていましたが、現在のプロジェクトのSQL規約で
> 「不要なOrderByは付加しない」とあるので(当然と言えば当然か!?)、
> やはり、「OrderBy指定が無しの場合はOrderBy句は生成されない」が良いと
> 思い、以下の様に考えました。
> 
>   public String selectList_QUERY = "/*BEGIN*/order by/*$dto.orderByString*//*E
> ND*/";
> 
> しかし、2点問題があります。
> 
> 1. DaoMetaDataImpl#startsWithOrderBy()がfalseを返し、Where句として
>    処理されてしまう。
> 
>   独自(次バージョンよりOverride)のDaoMetaDataImplで、
>   startsWithOrderBy()判定に"/*BEGIN*/order by"を付け加えることで
>   解決できます。
> 
> 2. /*BEGIN*/は、IFコメントを対象とするので、
>    /*IF dto.orderByString != null*/ このように記述しなければならない。
> 
>   “1”の解決を"/*BEGIN*//*IF dto.orderByString != null*/order by..."に
>   すればうまく動作しますが、思いっきりプロパティ名に依存してしまいます。
> 
> 
> 
> このやり方で不可能では無いのですが、主義としてあまりS2Dao本体を
> 改造したくありません。もしよろしければ、「OrderBy句を動的に生成したい」
> という要望として対応して頂けませんでしょうか?

これって、startsWithOrderBy()がSQLコメントを無視して判定するようにすれば
解決できないですかね。なんか他に影響出るかな?

ちょっとやってみます。
#S2Dao採用がかかってるのなら対応しないわけに行かないですね。

#ところで次のS2Daoリリース日どうします?
#sourceforgeのBTSでターゲットマイルストーン指定できればいいんだけど。
---
上原 慶三<[E-MAIL ADDRESS DELETED]>



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