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