[Seasar-user:18307] 【DBFlute】Bhv共通処理

HATTI [E-MAIL ADDRESS DELETED]
2009年 8月 18日 (火) 12:09:24 JST


お世話になっております。
hatti と申します。

DBFlute9.5.3 / OracleXE(10g) を使用しております。
特に急ぎの質問ではないため、時間のあるときに回答いただけるとありがたいです。

現在 DBFlute の学習として、サンプルアプリを作成しています。
サンプルではテーブルのレコードを物理削除せずに、論理削除で削除しようと考えております。

全テーブルに論理削除番号(フラグではなく連番 ※1以上は削除済)をサフィックスカラムとして持たせました。
フラグではなく、連番なのは業務キーと削除Noを合わせてユニークインデックスを張りたいためです。
(フラグだと 0/1 のみなので、同一の業務キーレコードが2回削除されるとかち合うため。)

そこで、4点ほど質問させていただきたいことがあります。

1.論理削除番号を常に検索条件に付加
 自動生成されるメソッド(selectByPK など)は、純粋に PK のみで検索されるため、
 論理削除されているものも取れてしまうと思いますが、
 これら自動生成されるメソッドに対して、論理削除番号を常に条件に付加させることはできないでしょうか。

2. 1.が無理な場合、全 Bhv に共通な自作メソッドを持たせたい
 自動生成が無理ならば、自分で作成するしかないです。
 その場合、全 ExBhv に findAll などを持たせるのはテーブル数が多いと困難です。

 そこで、全 ExBhv に共通な処理(findByPk, findAll, logicalDelete など)を持たせることは可能でしょうか。
 自動生成された Bhv を見ると、ExBhv とそれに対する BsBhv しかなく、各テーブルごとに処理を持たせないと
 いけないのかなと感じております。

 ※最悪、commonBhv などを作って、全 ExBhv に DI しようかと考えていますが、、、

3.2.が可能な場合、自動生成されるメソッドが不要
 自ら作成した共通メソッドをディベロッパに使用してもらいたいです。
 大規模な開発の際に、全員に情報伝達できず、
 DBFlute によって作成されたメソッドが使われて論理削除されたデータが
 画面表示されたりしてしまうとまずいので、、

 ※テストをしっかりしろと言われるかもしれないですが、現実問題起こりそうなので、、

4.また、こんなことをせずともその他解決、品質を高くできる方法
 論理削除番号の持たせ方、実装方法など、ご指摘があればお願いいたします。
 ※私ならこうする〜など

以上、お手数をおかけしますがよろしくお願いいたします。


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