[Seasar-user:2389] Re: S2Dao: 主キーの無いテーブルで自動生成 SELECT を使えない

上原 慶三 keizou
2005年 7月 20日 (水) 02:46:33 JST


上原です。
suga wrote:
> suga です。
> 
> SeasarWiki の Q&A に質問として上がっていたことです。
> 
> 主キーの無いテーブルで SQL を自動生成した場合に
> PrimaryKeyNotFoundRuntimeException が発生します。
> これ自体は S2Dao 1.0.14 で例外が発生しないように
> なりました。
> http://seasar.satin.jp/wiki/index.php?SeasarWhatsNew%2F2004-12-14
> 
> が、現時点では例外が発生する状態に戻っています。
> 主キーの無いテーブルでの自動 SELECT 文が有効になるよう
> 対応をお願いします。
> 
> 
> 1.0.14 では BeanMetaDataImpl にあったメソッド
> 
> protected void setupAutoUpdateSql() {
>     if (getPrimaryKeySize() == 0) {
>         return;
>     }
>     :
> 
> protected void setupAutoDeleteSql() {
>     if (getPrimaryKeySize() == 0) {
>         return;
>     }
>     :
> 
> の部分が、内部構造変化のうちに抜け落ちたものだと
> 思います。現状では AbstractAutoStaticCommand の
> 
> protected void setupUpdateSql() {
>     checkPrimaryKey();
> 
> protected void setupDeleteSql() {
>     checkPrimaryKey();
> 
> に当たるのでしょうか。
> 
> 1.0.14 では
> ・主キーが無ければ更新, 削除 SQL の自動生成をしない
> ・自動生成の更新, 削除 SQL を実行しようとすると例外
> となっているようです。
> 
すがさん、対応ありがとうございます。返事が遅くなってすいません。

こちらで試してみたかぎり、SELECTは主キーがなくてもSQLを自動生成でき
ているのですが。もしよければ詳しい再現条件を教えてください。

-- 
---
上原 慶三<[E-MAIL ADDRESS DELETED]>



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