2017-12-22 5 views
-2

私の会社では、私はJava開発者であり、私たちは休止状態のormを使用しています。 データ・アーキテクトは、データ関連のために、すべてのデータベースのすべての表に対して監査列(CREATE_DATE、CREATED_BY、UPDATE_DATE、UPDATED_BY)を必要としました。アプリケーション分野ではこれらのフィールドを使用していないため、これはちょっと変わったようです。すべてのHibernateのDAOオブジェクト上のこれらの監査フィールドを持つ基本クラスを作る監査列のトリガーを使用して

  • たちのJavaアプリケーション用

    、私は推測する、我々は2つのオプションがあります。

  • これらの列を更新するテーブル・トリガーを定義します。

どちらを選ぶべきですか?その理由は何ですか?その他の提案はありますか?

+0

私はData Architectsがあなたに選択肢を与えたことに非常に驚いています。監査列は、トリガーによって設定および更新され、それらを管理するコードに依存しません。彼らはあなたのコードを使用するのではなく、必要であればフォレンジック分析の行の更新を監査することも認識しています。 –

+0

Hibernate Enversを見てください:http://hibernate.org/orm/envers/ –

+0

@ErwinBolwidt私はエンバーを知っています。オプション1にエンバーを提案していますか? – irfangoren

答えて

0

私の理解と経験によれば、2番目のオプションは、2つのうちの唯一の良いオプションです。これは、データがアプリケーションの外部からテーブルに更新/投入された場合(バッチジョブ/データ修正など) 。)、最初のオプションは機能しません。

もう1つの選択肢は、PL SQLのみでデータ更新が行われている場合、PL SQLチームがそのコードを変更してコード内のこれらの列を更新できることです。しかし、コードが膨大な場合には、これは多くの作業になります。

全体として、トリガが最適な選択肢のようです。

関連する問題