[Seasar-user:16070] Re: [S2Dao]BeanクラスにアノテーションId、ValueTypeを設定するとID自動設定でIllegalPropertyRuntimeException

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 10月 21日 (火) 10:13:53 JST


中村(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と同じ挙動をするように
なります。
-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



Seasar-user メーリングリストの案内