selectEntityWithDeletedCheck(cb)
概要
基本概念
ConditionBean で null を戻さない一件検索 をします。検索結果が存在しない場合は明示的な例外が発生するので、検索結果がないという状況が業務的にあり得ない(条件設定のバグ、データ不整合など)、 もしくは、その状況は業務的なすれ違いなので排他制御の仕組みで一律の処理を行う、というようなときに利用します。
DeletedCheck の Deleted は、別の人(プロセス)のすれ違いによる削除のことを示します。
検索結果が存在しなかったら業務的に正常な処理を行う、という場合は、このメソッドではなく selectEntity() を利用して下さい。
会話上では、せれくとえんてぃてぃうぃずでりーでぃっどちぇっく と表現します。もしくは nullを戻さないせれくとえんてぃてぃ と表現します。
実装方法
実装の流れ
Behaviorの selectEntityWithDeletedCheck() を呼び出し、ConditionBeanを指定します。
e.g. selectEntityWithDeletedCheck()の実装手順 (Eclipseでコード補完) {MEMBER} @Java
memberBhv.selEW // .selEW と打って enter
--
// セミコロン ';' を打って ctrl(or command) + 2 そして L
memberBhv.selectEntityWithDeletedCheck(cb);
--
Member member = memberBhv.selectEntityWithDeletedCheck(cb);
... = member.getMemberId(); // member は null でない
メソッド仕様
引数
selectEntity() と同じです。
戻り値
該当のBehaviorに対応するテーブルの Entity となります。
検索結果が一件もない場合は例外になるので、戻り値が null になることはあり得ません。
例外
- 絞り込み条件が存在しなかった場合
- org.seasar.dbflute.exception.SelectEntityConditionNotFoundException
- selectEntity() と同じです。
- 検索結果が存在しなかった場合
- org.seasar.dbflute.exception.EntityAlreadyDeletedException。
- この例外は、指定された ConditionBean の条件で検索結果が存在しなかった場合に発生します。 業務的に存在することが前提の検索なので、開発時はバグ・データ不備、結合テスト・運用時はすれ違いと捉えることができます。
- 検索結果が複数件の場合
- selectEntity() と同じです。
オーバーライド
selectList() と同じような要領となります。