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

fujihara [E-MAIL ADDRESS DELETED]
2007年 7月 4日 (水) 11:27:20 JST


fujiharaです。

すみません、やっぱりうまくいってませんでした。

DEBUG 2007-07-04 11:20:01,531 [http-8080-Processor25] BEGIN 
jp.roaso.dao.UsrgrpassignedDao#setByOldgrpidUserid(6, A1020, 4)
DEBUG 2007-07-04 11:20:01,531 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-07-04 11:20:01,531 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-07-04 11:20:01,531 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-07-04 11:20:01,531 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-07-04 11:20:01,531 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-07-04 11:20:01,562 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-07-04 11:20:01,578 [http-8080-Processor25] 論理的なコネクションを取得しました
DEBUG 2007-07-04 11:20:01,578 [http-8080-Processor25] UPDATE Usrgrpassigned 
SET USR_GRP_ID = 4 WHERE USR_GRP_ID = 6 AND USR_ID = 'A1020'
DEBUG 2007-07-04 11:20:01,578 [http-8080-Processor25] 論理的なコネクションを閉じました
DEBUG 2007-07-04 11:20:01,578 [http-8080-Processor25] END 
jp.roaso.dao.UsrgrpassignedDao#setByOldgrpidUserid(6, A1020, 4) 
Throwable:org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[UPDATE Usrgrpassigned SET USR_GRP_ID = ? WHERE USR_GRP_ID = ? AND 
USR_ID = ?], Message=[[ESSR0072]SQLで例外(SQL=[UPDATE Usrgrpassigned SET 
USR_GRP_ID = ? WHERE USR_GRP_ID = ? AND USR_ID = ?], Message=[0], 
ErrorCode=S1009, SQLState={3})が発生しました : [SQLで例外(Message=[Can not 
issue data manipulation statements with executeQuery().], ErrorCode=0, 
SQLState=S1009)が発生しました。], [Can not issue data manipulation 
statements with executeQuery().], ErrorCode=0, SQLState=S1009)が発生しました

のようなExceptionが発生します。
ちなみに使ってるDAOは
s2-dao-1.0.43.jar
s2-dao-tiger-1.0.43.jarです。

申し訳ありませんが宜しくお願いします。

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


> せとあずさです。
>
> ----- 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 



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