[Seasar-user:15889] Re: Oracle での version カラムについて

Kizashi Nagata [E-MAIL ADDRESS DELETED]
2008年 9月 30日 (火) 19:58:59 JST


小林さん

>> 精度を明示的に指定して,Number(9) 以下なら Integer,
>> Number(19) 以下なら Long になり,@Version プロパティ
>> として扱うことが出来ます.

DDLに明示的に精度をしてみましたが、9以下、19以下の
どちらも BigDecimal になってしまいます。

----------------------------------------
CREATE TABLE VERSION_TEST
(
    ID          NUMBER(20,0) NOT NULL,
    VERSION     NUMBER(3,0) NOT NULL
)
----------------------------------------
↓
----------------------------------------
@Entity
@Table(name="VERSION_TEST")
public class VersionTest {

	public BigDecimal id;

	@Version
	public BigDecimal version;

}
----------------------------------------

データベース環境は OracleXE(10g) です。

とりあえず手動で Long にすることで対応いたします。

よろしくお願いいたします。


> 小林さん
>
>> S2JDBC のエンティティはほぼ JPA 仕様の
>> サブセットなのですが,JPA 仕様で @Version に
>> BigDecimal は許されていないので,S2JDBC でも
>> 対象にしていません.
>
> なるほど。そういう仕様なんですね。
> 精度も含め、再検討いたします。
>
> ありがとうございました。
>
>> 小林 (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 mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
>>
>
>
> --
> kizashi
> [E-MAIL ADDRESS DELETED]
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>


--
kizashi
[E-MAIL ADDRESS DELETED]



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