[Seasar-user:6397] Re: S2Dao(S2Dao-CodeGen)で主キーを複数持つテーブルの利用について
Seto Azusa
[E-MAIL ADDRESS DELETED]
2007年 2月 27日 (火) 23:02:37 JST
せとあずさです。
On 27 Feb 2007 10:29:38 +0900
[E-MAIL ADDRESS DELETED] wrote:
> -->参考まで生成したソースとテーブル定義のExcelを添付します。
拝見したところTESTテーブルの項目が全てPKになっていますが、
S2DaoではPKのみのテーブルを更新するメソッドが存在し、そのメソッドに
対応するSQLファイル・SQLアノテーションが存在すると例外になります。
これは、UPDATE文を自動生成する場合
UPDATE TEST SET (更新後の値) WHERE (プライマリーキーの値)
というようなSQLを生成しようとしますが、テーブルが全てPKの
場合更新後の値とプライマリーキーの値両方をDTOに格納できない
ためです。
ただ、その場合での例外メッセージは
org.seasar.dao.MethodSetupFailureRuntimeException: [EDAO0019]test.dao.TestDao
のupdateメソッドの初期化時に例外が発生しました。理由はorg.seasar.framework.ex
ception.SRuntimeException: [EDAO0020]Primary KeyのみのテーブルをSQL文の自動生成で更新することはできません
at org.seasar.dao.impl.DaoMetaDataImpl.setupMethod(DaoMetaDataImpl.java:187)
...
となり、いただいた
>WARN 2007-02-26 19:43:02,328 [WebContainer : 2] Unhandled exception
>org.seasar.dao.MethodSetupFailureRuntimeException: [EDAO0019]test.dao.TestDaoのupdateメソッド
>の初期化時に例外が発生しました。理由はorg.seasar.dao.PrimaryKeyNotFoundRuntimeException: [ED
>AO0009]1test.dto.TestDto$$EnhancedByS2AOP$$423a423aにプライマリーキーが見つかりません
とは一致しないのですが、この理由はちょっとわからないです。
S2Daoの仕様としては上記のようになりますので、上記を参考に
してSQL文を記述するかテーブルを見直すかしていただけます
でしょうか。
--
せとあずさ
[E-MAIL ADDRESS DELETED]
http://www.fieldnotes.jp/d/
Seasar-user メーリングリストの案内