[Seasar-user:16082] Re: [S2Dao]BeanクラスにアノテーションId、ValueTypeを設定するとID自動設定でIllegalPropertyRuntimeException
Fukushima Kazufumi
[E-MAIL ADDRESS DELETED]
2008年 10月 21日 (火) 19:36:51 JST
サイボウズ 福嶋です。
> 修正しSNAPSHOTを作成しました。
> よければ使ってください。
SNAPSHOTをこちらの環境で適用し、期待通りに動くことを確認しました。
助かりました。ありがとうございます。
> 参考までにですが、
> Seasasr2.4.18以降をお使いであればIdentityを次のように書くことで
> IdentityTypeの定義と@ValueTypeでの指定を不要にすることができます
この方法も@ValueTypeなしで動作することを確認できました。
これで、いくつかクラスを減らすことができそうです。
迅速な対応ありがとうございました。
---------------------------
福嶋一史
[E-MAIL ADDRESS DELETED]
サイボウズ株式会社 開発本部
---------------------------
Toshihiro Nakamura さんは書きました:
> 中村(taedium)です。
>
>>> 主キーに対応するプロパティに
>>> ValueTypeアノテーションを付与することは
>>> 考慮されていませんでした。
>>>
>>> 次のバージョンで対応できないか検討します。
>
> 修正しSNAPSHOTを作成しました。
> よければ使ってください。
>
> http://maven.seasar.org/maven2-snapshot/org/seasar/dao/s2-dao/1.0.49-SNAPSHOT/s2-dao-1.0.49-20081020.174051-7.jar
> http://maven.seasar.org/maven2-snapshot/org/seasar/dao/s2-dao-tiger/1.0.49-SNAPSHOT/s2-dao-tiger-1.0.49-20081020.174216-6.jar
>
> 参考までにですが、
> Seasasr2.4.18以降をお使いであればIdentityを次のように書くことで
> IdentityTypeの定義と@ValueTypeでの指定を不要にすることができます
>
> public class Identity {
> private Long value;
> private Identity(Long value) {
> this.value = value;
> }
> public static Identity valueOf(Long value) {
> return new Identity(value);
> }
> public Long value() {
> return value;
> }
> }
>
>
> ポイントは2つあります。
> ・staticのvalueOfメソッドでDBにマッピングする値からIdentityを生成します。
> ・DBにマッピングする値をvalueメソッドで返します。
>
> Identityを上記のように書けば
> サンプルで送ってもらったIdentityTypeと同じ挙動をするように
> なります。
Seasar-user メーリングリストの案内