[Seasar-user:15998] [S2JDBC]タイプセーフ化に伴う要望
片岡歩
[E-MAIL ADDRESS DELETED]
2008年 10月 16日 (木) 02:18:44 JST
片岡といいます。
S2.4.30からサポートされたS2JDBCをタイプセーフに書く方法ですが、
AutoSelectのJOINなどで、パラメータの型がこれまでStringだったものをCharSequence型に
変えることによって、下位互換性を保ちながら、仕様を変えることができたと理解しています。
自分たちのプロジェクトでは、これまで、S2JDBC-GENの一番最初のnameのテンプレートの
ようなイメージで、ENTITYのプロパティ(テーブルのカラム名相当のもの)名をString型で
返してあげることで、タイプセーフというかEclipseでの自動補完が可能なコーディングを
実現していました。
今回PropetyName<T>型がサポートされたので、早速自動生成の名称保管用クラス(S2JDBC-GEN
でいうところの~Nameクラス)も、PropetyName<T>を継承して作ろうと考えているのですが、
1つ問題があります。
現在、SimpleWhereなど(それ以外のものもあるかもしれませんが)のクラスのパラメータの型は、
Stringしかサポートされていません。
これまでの、プロパティ名をStringで返す名称補完クラスだったら、
new SimpleWhere().eq(entity().property(),"検索の値")
と記載できました。
今回のPropetyNameの対応をいれると、上記のままでは、コンパイルエラーになり、
new SimpleWhere().eq(entity().property().toString(),"検索の値")
のような形で、toString()を追加してあげなければなりません。
ここで要望なのですが、AbstractWhereなどでも、JOINなどで対応したようの形で、パラメータの型を
CharSequence型に変更し、内部的にtoString()していただければ、これまでのソースでもリコンパイル
さえすればうまく動くのではないかと思っています。
できれば、変更に関してご検討いただきたいです。
また、加えての要望ですが、現状、AutoInsertやAutoUpdateなどのincludes、excludesなどの
パラメータはStringのままになっています。ここに関しても、CharSequence型に変更いただると、
S2JDBC-GENのタイプセーフ名称補完が使えてよいと思いますが、いかがでしょうか。
(いまだとtoString()する形になります)
上記、ご検討お願いします。
Seasar-user メーリングリストの案内