[CONTAINER-369] [S2Dataset] 主キーがないテーブルに対して SqlTableWriter#write() で行の変更・削除を行うと不正な SQL を生成する問題を修正しました. Created: 2009-05-27  Updated: 2009-05-29  Resolved: 2009-05-29

Status: Resolved
Project: S2Container
Component/s: S2Dataset
Affects Version/s: 2.4.37
Fix Version/s: 2.4.38

Type: Bug Priority: Minor
Reporter: Osamu NAKAMURA Assignee: koichik
Resolution: Fixed Votes: 0
Labels: None


 Description   

RemovedState.getSqlContext()で主キーが存在しない場合、"DELETE FROM <Table> W"というSQL文を生成する。
主キーの有無によらず、buf.setLength(buf.length() - 5);で付加されていない" AND "を削除しようとするため。

対策
A) 主キーの有無を判断し、"DELETE FROM <Table>"となるようにする。
または
B) 主キーが存在しない場合、Exceptionでその旨を通知する。



 Comments   
Comment by koichik [ 2009-05-29 ]

org.seasar.extension.dataset.PrimaryKeyNotFoundRuntimeException をスローするようにしました.

Comment by koichik [ 2009-05-29 ]

対応しました.
http://svn.seasar.org/browse/?view=rev&root=s2container&revision=4342

Generated at Fri Mar 29 03:37:00 JST 2024 using Jira 9.13.0#9130001-sha1:94297e63fec900085df7b42441d17146fe025bb5.