JavaのDBエンティティ・フィールドの自動再計算方法について,

自前の古いコードからなるべく標準的な解決方法に移行したいのですが、
1. 自社開発のコードを代替するライブラリ・手段は存在するか
2. 一般的にはどのように対処しているのか
という2点を教えてください。

この自動再計算処理は、オラクルDBのトリガーに近い機能をより汎用的にJavaで実装したものです。主な使い所は、DBエンティティにデータ上の依存性(Aを変更すると常にBの値も連動して変化する必要がある)がある場合、データを変更するコードからは意識されなくても、連動する値が自動的に再計算されて変化するというものです。
下記が実装の概要です
1.各種の計算クラスを定義
2.各種計算クラスは監視対象のフィールドをMediatorクラスに登録
3.Madiatorクラスがエンティティで変更されたフィールドを監視。変更されたフィールドが監視対象の計算クラスを実行
エンティティクラスをハイバネートやEJBなどに置き換える場合、このような自動再計算の機能は組み込まれていますか?どのように実現するのが一般的ですか?
また皆さんはどのように実現されていますか?
よろしくお願いします。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2011/12/29 06:20:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kodairabase No.1

回答回数661ベストアンサー獲得回数80

ポイント300pt

>1. 自社開発のコードを代替するライブラリ・手段は存在するか
無いと思います。

>2. 一般的にはどのように対処しているのか
Oracle Applicationsを使うと思います。
http://www.oracle.com/jp/products/applications/index.html

  • id:nankyokun
    追加します。具体例です。
    例えばローンテーブルに、支払い頻度、支払額、ローン金額、ローン期間、利息%のようなフィールドがあり、どれでも値を変えると連動して自動的に他フィールドに反映しています。利息を下げると、ローン金額が下がり、支払い頻度を上げると、ローン期間が減るイメージです。
    変更操作は至るところから実行されうるという前提です。また、単項目を変更操作する機能からは、必要な再計算を意識する必要がないという作りです。
    計算で求められる値はDBに一切格納しないというのも一つの方針にはなりうるとおもうのですが、複雑な計算が求められる中間値が多いので、どうしてもこのような自動再計算が必要になって来るように思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません