S2Dao 更新系メソッドの仕様

汎用性を考えるとこんな感じが良くないかなぁ?

  • int insert(Bean bean)
    • 更新件数が1 → 1を戻り値で返す。
    • 更新件数が1以外 → 例外をスロー (または戻り値で返す)。
  • void insert(Bean bean)
    • 更新件数が1 → 何もしない。
    • 更新件数が1以外 → 例外をスロー。
  • int update(Bean bean) / int delete(Bean bean)
    • 引数が transient (versionNo または timestamp が未設定)
      → 更新件数を戻り値で返す。
    • 引数が persistent (versionNo または timestamp が設定)
      • 更新件数が1 → 1を戻り値で返す。
      • 更新件数が1以外 → 例外をスロー (または戻り値で返す)。
  • void update(Bean bean) / void delete(Bean bean)
    • 引数が transient (versionNo または timestamp が未設定)
      → 何もしない。
    • 引数が persistent (versionNo または timestamp が設定)
      • 更新件数が1 → 何もしない。
      • 更新件数が1以外 → 例外をスロー。

この辺のルールが簡単にカスタマイズできるようになっているといいかも。
DaoInterceptor のサブクラスを作ってオーバライドできればそれでもいい。

改訂版

やっぱりちょっと複雑すぎるから、最初の案でいいか...(^^;)

  • int insert/update/delete(Bean bean)
    → 更新件数を戻り値で返す。
  • void insert/update/delete(Bean bean)
      • 更新件数が1 → 何もしない。
      • 更新件数が1以外 → 例外をスロー。