[Seasar-user:12330] Re: [Seasar][S2JDBC]GenerationType.SEQUENCEによるIDの取得(解決報告)

sato [E-MAIL ADDRESS DELETED]
2007年 12月 27日 (木) 17:21:42 JST


お世話になります。NSQ@佐藤です

無事に解決に至りました。
小林 (koichik)さん、ありがとうございます。

ご教授頂いた2つの方法のいずれでも問題なく動作する事を確認しました。
どちらの方法を選択するかは、他メンバーと相談して決めたいと思います。

本当にありがとうございました。


>お世話になります。NSQ@佐藤です
>
>小林 (koichik)さん。ありがとうございます。
>早速試してみます。
>
>
>
>>小林 (koichik) です.
>>
>>Date:    Thu, 27 Dec 2007 16:13:23 +0900
>>From:    sato <[E-MAIL ADDRESS DELETED]>
>>To:       [E-MAIL ADDRESS DELETED]
>>Subject: [Seasar-user:12325] [Seasar][S2JDBC]GenerationType.SEQUENCEによる
>>IDの取得
>>
>>> S2JDBCを利用したinsertで1件目はIDを{Entity}.nextval from dualでデータ
>>> ベースから取得出来ているのですが、2件目以降はnextvalせず、IDの最大値+1で
>>> データを登録してしまいます。
>>> これにより、データベースのSequenceと登録されているIDに不整合が起きていま
>>> す。
>>
>>@SequenceGenerator アノテーションには
>>allocationSize という要素があり,その
>>デフォルト値は 50 となっています.
>># JPA の仕様です.
>>
>>S2JDBC は,Sequence から取得した値から,
>>この allocationSize の範囲までは,新たに
>>Sequence から値を取得することなく主キーに
>>割り当てます.
>>
>>そのため,Sequence の増分値と allocationSize が
>>一致している必要があります.
>>Sequence の増分値は create sequence 文で指定します.
>>
>>CREATE SEQUENCE DEPARTMENT_SEQ INCREMENT BY 50 START WITH 5;
>>                                            ^^
>>この増分値と allocationSize が一致していれば,
>>毎回 nextval を取得するより効率的です.
>>
>>どうしても毎回 nextval を取得させたいなら,
>>@SequenceGenerator で allocationSize を 1 に
>>してください.
>>
>>
>>--
>><signature>
>>   <name>Koichi Kobayashi</name>
>>   <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
>></signature>
>>
>>_______________________________________________
>>Seasar-user mailing list
>>[E-MAIL ADDRESS DELETED]
>>https://ml.seasar.org/mailman/listinfo/seasar-user
>
>=========================================================
>株式会社 ネットスクエア
>   佐藤 慎也 <E-mail:[E-MAIL ADDRESS DELETED]>
>  
>   〒733-0822
>     広島市西区庚午中4丁目6−1セントラルビル3F
>     http://www.net-squares.com/
>     TEL:(082) 507 - 6266
>     FAX:(082) 507 - 6267
> =======================================================
><< ISO文書管理は弊社のISO-SQUAREにお任せ下さい。       >> 
> =======================================================
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-user

=========================================================
株式会社 ネットスクエア
   佐藤 慎也 <E-mail:[E-MAIL ADDRESS DELETED]>
  
   〒733-0822
     広島市西区庚午中4丁目6−1セントラルビル3F
     http://www.net-squares.com/
     TEL:(082) 507 - 6266
     FAX:(082) 507 - 6267
 =======================================================
<< ISO文書管理は弊社のISO-SQUAREにお任せ下さい。       >> 
 =======================================================


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