[Seasar-user:15881] Re: Oracle での version カラムについて
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 9月 30日 (火) 17:00:20 JST
小林 (koichik) です.
Date: Tue, 30 Sep 2008 16:10:38 +0900 (JST)
From: "Kizashi Nagata" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15880] Oracle での version カラムについて
> Scaffold作成時に作成されたEntityでは version は
>
> @Version
> public BigDecimal version;
>
> というように、BigDecimal 型で定義されています。
おそらく,VERSION カラムの型が NUMBER に
なっていて,精度 (桁数) を指定していないのでは
ないでしょうか?
その場合,整数部の精度はデフォルトで 38 桁に
なり,Long の範囲を超えるため,Scaffold は
BigDecimal にマッピングしますが,BigDecimal は
@Version プロパティとして使うことは出来ません.
精度を明示的に指定して,Number(9) 以下なら Integer,
Number(19) 以下なら Long になり,@Version プロパティ
として扱うことが出来ます.
> 【お願い】
> BigDecimal も version の型に含めていただくことはできますでしょうか?
S2JDBC のエンティティはほぼ JPA 仕様の
サブセットなのですが,JPA 仕様で @Version に
BigDecimal は許されていないので,S2JDBC でも
対象にしていません.
カラムの精度を明示して Integer または Long の
範囲に収まるようにするか,生成されたエンティティの
version プロパティの型を Integer または Long に
変更してください.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内