[Seasar-user:12328] Re: [Seasar][S2JDBC]GenerationType.SEQUENCEによるIDの取得
sato
[E-MAIL ADDRESS DELETED]
2007年 12月 27日 (木) 16:53:42 JST
お世話になります。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 メーリングリストの案内