2012-01-11 11 views
1

データベースの変更を監視するサーバー側アプリケーションを作成していますが、これをHibernateで行う予定です。リスナーを設定して、データに変更が加えられた場合、登録されたオブザーバーには更新があることを伝え、それを引き出す別の要求を送信できるようにしたいと思います。データベースのJavaモニタの変更 - Hibernateとenvers

私は、HibernateエンジンとAuditEventListenerについて読んだことがあります。私の質問は、アプリケーションがデータのみを取得し、それを設定しないので、Enversリスナーはアプリケーションで作成されていないテーブルの変更を聞くことができますか?

答えて

1

更新日:

いいえ、リスナーのみ設定Enverslistenersを持つHibernateは、セッションによって行われた変更に聞くNHibernateの中のフックだけです。

あなたが探しているものは、トリガーまたはデータベースイベントです。私は、特定の条件下で動作するように思われるTriggers、listennotifyを使ってPostgresqlの概念証明を作った。 PostgreSQLのアーキテクチャは、何らかの通知システムをサポートするすべてのSQLデータベースで同じですが、 Oracleの場合

  • 変更see here
  • は変更があるかどうかを確認し、それらに
  • を処理するために、いくつかのテーブルにあなたのアプリで
  • ポールチェンジ情報テーブルを変更情報を書き込むためのコールバックを作成します
+0

Oracle DBに接続する必要があるため、PostgreSQLはオプションではありません。あなたがリスナーについて何を言っているかは、NHibernateのためのフックだけではありません。 – PDStat

関連する問題