[Seasar-user:17036] Re: [S2dao] プライマリしかないテーブルのselectAll()

kubo [E-MAIL ADDRESS DELETED]
2009年 3月 5日 (木) 21:01:15 JST


久保です。

あきらさん、こんばんは

こちらの件ですが、
S2Daoの初期化プロセスの仕組みからすると仕様通りとなります。
S2Daoは最初のDBアクセス時に該当Daoクラスのメソッド(たち)を
初期化します。そのとき、呼び出したselectAll()だけでなく、
別のメソッドupdate()の初期化も行うためこのようになります。

ただやはり一瞬「なんだなんだ!?」と皆思うと思うので、
フィードバック頂いたことで、これを機に情報共有されれば
と思います。(ありがとうございます)


2009/3/5 あきら <[E-MAIL ADDRESS DELETED]>:
> あきらです
>
> S2Daoにておかしな動きを発見しました
>
> CREATE TABLE Aaa(ID IDENTITY NOT NULL PRIMARY KEY);
>
> 上記のようなテーブルをS2Daoで利用した場合、プライマリーキー
> のみの場合には使えないのは問題ないのですが、エラー文が途中から
> selectAll()がupdate()を実行しているようでした。
> Daoのupdate()をコメントアウトすると正常にselectAll()が呼べました
>
> 環境:s2-dao-1.0.49.jar + H2(H2以外でおきたのを再現)
>
> Aaa[] aaa = aaaDao.selectAll();
>
> にてのログ
>
> DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN
> testh2.dao.AaaDao#selectAll()
> DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl - 物理的なコネクションを取得しました
> DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl -
> 論理的なコネクションを取得しました。tx=[FormatId=4360, GlobalId=1236251819956/4,
> BranchId=]
> DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl -
> 論理的なコネクションを閉じました。tx=[FormatId=4360, GlobalId=1236251819956/4,
> BranchId=]
> DEBUG org.seasar.extension.dbcp.impl.ConnectionPoolImpl -
> 論理的なコネクションを取得しました。tx=[FormatId=4360, GlobalId=1236251819956/4,
> BranchId=]
> DEBUG org.seasar.extension.dbcp.impl.ConnectionWrapperImpl -
> 論理的なコネクションを閉じました。tx=[FormatId=4360, GlobalId=1236251819956/4,
> BranchId=]
> DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - END
> testh2.dao.AaaDao#selectAll()
> Throwable:org.seasar.dao.MethodSetupFailureRuntimeException:
> [EDAO0019]testh2.dao.AaaDaoのupdateメソッドの初期化時に例外が発生しました。理由はorg.seasar.framework.exception.SRuntimeException:
> [EDAO0020]Primary KeyのみのテーブルをSQL文の自動生成で更新することはできません
> DEBUG org.seasar.extension.jta.TransactionImpl -
> トランザクションをロールバックしました。tx=[FormatId=4360, GlobalId=1236251819956/4,
> BranchId=]
> DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - END
> testh2.web.AaaPage#prerender()
> Throwable:org.seasar.dao.MethodSetupFailureRuntimeException:
> [EDAO0019]testh2.dao.AaaDaoのupdateメソッドの初期化時に例外が発生しました。理由はorg.seasar.framework.exception.SRuntimeException:
> [EDAO0020]Primary KeyのみのテーブルをSQL文の自動生成で更新することはできません
> DEBUG org.seasar.teeda.extension.util.TeedaExtensionErrorPageManagerImpl
> - [EDAO0019]testh2.dao.AaaDaoのupdateメソッドの初期化時に例外が発生しました。理由はorg.seasar.framework.exception.SRuntimeException:
> [EDAO0020]Primary KeyのみのテーブルをSQL文の自動生成で更新することはできません
> org.seasar.dao.MethodSetupFailureRuntimeException:
> [EDAO0019]testh2.dao.AaaDaoのupdateメソッドの初期化時に例外が発生しました。理由はorg.seasar.framework.exception.SRuntimeException:
> [EDAO0020]Primary KeyのみのテーブルをSQL文の自動生成で更新することはできません
>
> 以上、簡単ですが報告までに!
>
> あきら
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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