かとじゅんの技術日誌

技術の話をするところ

S2BeanUtilsでもS2JDBCと同じようにタイプセーフのプロパティ名を記述できます

S2BeanUtilsでエンティティをBeanMapなどにプロパティのコピーができます。
どのプロパティをコピーに含めるか、含めないかの制御も行えます。
たとえば、コピーに含める場合は以下です。この場合だとempNameとdeptNameというプロパティだけがsrcからdstにコピーされます。

BeanMap bm = Beans.copy(src, dst).includes("empName","deptName").execute();

これをタイプセーフで書けたらいいなと思い、S2JDBC-Genが吐き出したNamesクラス(エンティティのプロパティ名を保持しているクラス)使ってみました。

S2.4.30では以下のような書き方ができます。タイプセーフになりますが元の文字列より長くてちょっとウザイw

BeanMap bm = Beans.copy(src, dst).includes(empName().toString(),deptName().toString()).execute();

うんで、seasar-devで相談したところ小林さんから「いいですね.お願いします.」をゲットしたのでwww、ここは自重せずに https://www.seasar.org/issues/browse/CONTAINER-294 を私のほうで対応させてもらいました。

ということで、地味ですがS2.4.31から以下のようにS2JDBC同様にキレイにプロパティ名を記述できるようになります!(converter系のメソッドも同様に対応したので使えるはずです)

BeanMap bm = Beans.copy(src, dst).includes(empName(),deptName()).execute();