[DBFLUTE-553] {Env}: 論理削除サポートについてのドキュメントを整備 Created: 2009-09-16 Updated: 2010-01-11 |
|
| Status: | Open |
| Project: | DBFlute |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major |
| Reporter: | jflute | Assignee: | jflute |
| Resolution: | Unresolved | Votes: | 1 |
| Labels: | None | ||
| Description |
|
[Overview] o 「現状の考え方」と「あえてやるならこうする」を両方説明する。 [Reference] [Contents] 更新時の自動化は共通カラムの自動設定で可能であり実利用されている。 検索時の自動化は特に支援はない。 その内訳は: 現状は検索時は明示的に論理削除の条件を入れる方が良いと考えている。 << 検討 >> o 業務的に必要なところにだけ論理削除フラグを付与(一律全テーブル付与はしない) ExConditionQueryのコンストラクタにて自動で設定するやり方を提供する。 ExConditionQueryにてアプリケーション特有の仕様をベタに実装する。 /** * Constructor. * @param referrerQuery The instance of referrer query. (Nullable: If null, this is base query) * @param sqlClause The instance of SQL clause. (NotNull) * @param aliasName The alias name for this query. (NotNull) * @param nestLevel The nest level of this query. (If zero, this is base query) */ public MemberCQ(ConditionQuery referrerQuery, SqlClause sqlClause, String aliasName, int nestLevel) { super(childQuery, sqlClause, aliasName, nestLevel); if (referrerQuery == null) { // 基点テーブルの場合 setDeleteFlg_Equal_False(); } else if (referrerQuery instanceof MemberWithdrawalCQ) { // 会員退会情報からの結合の場合 // →依存ありで論理削除フラグを見る setDeleteFlg_Equal_False(); } else if (referrerQuery instanceof MemberLoginCQ) { // 会員退会情報からの結合の場合 // →依存なしで論理削除フラグを見る on().setDeleteFlg_Equal_False(); } else if (referrerQuery instanceof PurchaseCQ) { // 購入からの結合の場合 // →論理削除フラグは見ない } } 万が一、論理削除されたデータを検索したい場合は、 |
| Comments |
| Comment by jflute [ 2010-01-11 ] |
|
セカンドリリース以降には記述予定。 |