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