[Seasar-user:2429] S2Daoのtimestamp排他制御の例外について
Shinsuke Akabane
akabane_shinsuke
2005年 7月 25日 (月) 21:31:49 JST
赤羽と申します。
現在、S2Daoのtimestamp排他制御機能を使っているのですが、
S2Daoのバージョンをあげたことにより(1.0.23→1.0.27)、以下のような
動作変更があり、困っています。
【動作変更】
Timestampチェックに引っ掛かった時にthrowされる例外とエラーメッセージが
変わっている。
V1.0.23
例外)UpdateFailureRuntimeException
エラーメッセージ)更新に失敗しました。
V1.0.27
例外)NotSingleRowUpdatedRuntimeException
エラーメッセージ)更新の対象は1行でなければなりません。
【困っていること】
Timestampで該当するレコードが無い場合に、V1.0.27の方の例外だと
分かりにくく感じます。
更新対象が2行以上ある場合と0件の場合で
throwする例外を分けるのはどうでしょうか。
【原因】
ソースを調べたところ以下のような変更がありました。
org.seasar.dao.impl.AbstractAutoStaticCommand#execute(Object[] args)
V1.0.23
int updatedRows = handler.execute(args);
if (updatedRows != 1) {
throw new UpdateFailureRuntimeException(args[0]);
}
V1.0.27
int rows = handler.execute(args);
if (rows != 1) {
throw new NotSingleRowUpdatedRuntimeException(args[0], rows);
}
【案】
NotSingleRowUpdatedRuntimeExceptionを
・NotZeroRowUpdatedRuntimeException
・NotMultiRowUpdatedRuntimeException
などに分けてもらうのはどうでしょうか。
よろしくお願いします。
赤羽 進亮
==============================
赤羽 進亮
株式会社インテック
システム開発事業本部
第一システム開発部
tel 03-5665-5150
fax 03-5665-5179
mail [E-MAIL ADDRESS DELETED]
==============================
Seasar-user メーリングリストの案内