[Seasar-user:8926] Re: [S2DAO]プライマリーキーのみのテーブルアップデートエラー

SETO Azusa [E-MAIL ADDRESS DELETED]
2007年 7月 4日 (水) 09:42:48 JST


せとあずさです。

----- Original Message ----- 
From: "fujihara" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Wednesday, July 04, 2007 9:29 AM
Subject: [Seasar-user:8925] Re:[S2DAO]プライマリーキーのみのテーブルアップデートエラー


> UsrgrpassignedDaoの初期化時にエラーならば
> 対処はどの様に行えば良いのでしょうか?
>
> 1.public int update(Usrgrpassigned usrgrpassigned);を削除する?
> 2.テーブルに無駄なカラムを追加する?
> 3.それ以外?

updateメソッドを削除してください。
明確にドキュメント化していない仕様なのでどういうことなのか説明しますと...
以下のようなEntityがあったとして、
public class Employee{
    private int empno;
    private int companyno;
(setter/getter略)
}
empnoがPKだとS2Daoは以下のようなSQL文を生成するわけですが、
update Employee set companyno = ? where empno = ?

empnoとcompanynoが両方PKだとSQL文が
update Employee set where emono = ? and companyno = ?
となり、SQL文として意味を成しません。

このため、Daoの初期化時にPKだけのテーブルに対してSQL文の自動生成を
試みた場合には例外にするようになっています。これが

> [EDAO0019]jp.roaso.dao.UsrgrpassignedDaoのupdateメソッドの初期化時に例外が発生しました。理由はorg.seasar.framework.exception.SRuntimeException: [EDAO0020]Primary Keyのみ
> のテーブルをSQL文の自動生成で更新することはできません

の意味です。 




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