[Seasar-user:2381] S2Dao: 主キーの無いテーブルで自動生成 SELECT を使えない
suga
ko.suga
2005年 7月 17日 (日) 01:48:40 JST
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 を実行しようとすると例外
となっているようです。
--
suga ( [E-MAIL ADDRESS DELETED] )
Seasar-user メーリングリストの案内