[Seasar-user:7007] Re: [DBFlute] IDの自動生成が動かない

Kazushi Tominaga [E-MAIL ADDRESS DELETED]
2007年 4月 2日 (月) 14:09:09 JST


冨永です。

久保さん、お返事ありがとうございます。
ログは下記のとおりになります。

DEBUG 2007-04-02 14:03:48,578 [http-8080-Processor22] BEGIN
service.impl.FooServiceImpl#add(foo = 1)
DEBUG 2007-04-02 14:03:48,578 [http-8080-Processor22] トランザクションを
開始しました
2007-04-02 14:03:48,578 [http-8080-Processor22] DEBUG
service.impl.FooServiceImpl$$EnhancedByS2AOP$$17fd60d - foo = 1

2007-04-02 14:03:48,578 [http-8080-Processor22] DEBUG
dbflute.bizdb.allcommon.s2dao.S2DaoInterceptor -
/=======================================================================
2007-04-02 14:03:48,578 [http-8080-Processor22] DEBUG
dbflute.bizdb.allcommon.s2dao.S2DaoInterceptor - BsFooDao.insert()
2007-04-02 14:03:48,578 [http-8080-Processor22] DEBUG
dbflute.bizdb.allcommon.s2dao.S2DaoInterceptor - =================/
2007-04-02 14:03:49,000 [http-8080-Processor22] DEBUG
dbflute.bizdb.allcommon.s2dao.S2DaoInterceptor - SqlCommand
Initialization Cost: [00m00s422ms]
DEBUG 2007-04-02 14:03:49,078 [http-8080-Processor22] INSERT INTO spot
(foo, versionNo) VALUES (1, 0)
DEBUG 2007-04-02 14:03:49,078 [http-8080-Processor22] SELECT
LAST_INSERT_ID()
2007-04-02 14:03:49,093 [http-8080-Processor22] DEBUG
dbflute.bizdb.allcommon.s2dao.S2DaoInterceptor - ===========/
[00m00s515ms - Result: 1]
2007-04-02 14:03:49,093 [http-8080-Processor22] DEBUG
dbflute.bizdb.allcommon.s2dao.S2DaoInterceptor -
2007-04-02 14:03:49,093 [http-8080-Processor22] DEBUG
service.impl.FooServiceImpl$$EnhancedByS2AOP$$17fd60d - identity = 0
DEBUG 2007-04-02 14:03:49,093 [http-8080-Processor22] トランザクションを
コミットしました
DEBUG 2007-04-02 14:03:49,093 [http-8080-Processor22] END
service.impl.FooServiceImpl#add(foo = 1)

以上です。
どうぞご確認ください。

> 久保です。
>
> 冨永さん、DBFluteご利用ありがとうございます!
>
>   
>> 現在、MySQL 5.5 + DBFlute 0.4.2 + S2Dao 1.0.40で開発をし
>> ているのですが、なぜかIDの自動生成が働かないのです。
>>
>> あれこれと設定を見直したのですが、結局上手くいきませんでした。
>> どうかご助言をいただきたく思います。
>>     
>
> ぱっと思いつく確認点として、
> 実行された環境は、「トランザクション」が開始されていますでしょうか?
>
> <component class="service.impl.FooServiceImpl">
>     <aspect>j2ee.requiresNewTx</aspect>
> </component>
>
> とあるので、大丈夫かと思いますが、
> 念のため、ログに「トランザクションを開始しました」というような文字列
> が出力されているか確認させてください。
> (ログを頂けると助かります)
>
>
>
> S2Daoは、IdentityによるInsertをした後、そのIdentityの値を
> 取得するためのSQLを発行します。
>
> MySQLであれば SELECT LAST_INSERT_ID() を実行します。
> MySQLの仕様として「トランザクション開始状態」であることを前提としていま
> す。
> もし、「トランザクション外」で実行した場合は「0」が帰りますので
> まずそこを確認したいと考えました。
>
> よろしくお願いします。
>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
>   




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