[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 メーリングリストの案内