[Seasar-user:3659] Re: S2Dao 仕様確認

Ito Yoshiichi [E-MAIL ADDRESS DELETED]
2006年 5月 19日 (金) 17:47:49 JST


伊藤です。
返信が遅くなり申しわけありません。

> また、AbstractAutoStaticCommand#executeではPKで更新するため、
> 1件以外の場合に例外を投げるという現状のロジックで良いのでは
> と思っています。

理解が不足していました。

アノテーションなし、QUERY アノテーションありの場合
→ XXXAutoStaticCommand

SQL アノテーションありの場合
→ XXXDynamicCommand

がそれぞれ使用されるという仕様ですね。

PK 以外で更新を行いたい場合は、SQL アノテーションを利用することで、
意図した動作をするようになりました。
# QUERY アノテーションの場合も同様でよい気もしますが。

したがって、以下のクラスはせっかく作っていただいたのですが
使用しないと思います。申しわけありません。

> AssertAtLeastOneRowInterceptorを作成しました。
> このinterceptorを適用すると、更新行数が0件の場合に例外を投げ
> ます。(Daoの戻りはint等の数値である必要があります。)
>
> 同様に、更新行数が1件以外の場合に例外を投げる
> AssertExactlyOneRowInterceptorも作成しました。

  ∞ ∞ ∞ ∞

また、以前
[Seasar-user:2010] で出した以下の要望、
> (1) insert、update、delete の戻り値を void にした場合、
>     SQL の結果が 1 以外のときは例外を上げて欲しい。
>     (結果が 0 のときは... の方が良いか?)
>     現状は結果が 0 の場合何の反応もないため、
>     処理が成功したのか失敗したのか区別がつきません。

は、

[Seasar-user:2016]
> (6) VersionNo の初期値が現状 0 になっているようですが、
>     初期値 1 に対応していただけないでしょうか?
>     versionNo = 0 の場合、insert されたばかりのオブジェクトを
>     とってきたものなのか、新規に new された永続化前の
>     オブジェクトなのか区別がつきません。
>     versionNo = 0 : 永続化前のオブジェクト
>     versionNo > 0 : 永続化済のオブジェクト
>     と区別できるとうれしいかなと思います。

を実現するために、SQL ファイルを作成したのが原因でした。
したがって、(6) が実現されれば、(1) は現行のままで問題ありません。

以上です。




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