2012-01-11 70 views
1

我正在編寫一個服務器端應用程序,將監視數據庫的變化,我打算用Hibernate來做到這一點。我想建立一個監聽器,以便如果對數據做出任何更改,可以告訴任何已註冊的觀察者有更新併發送單獨的請求來提取它。數據庫中的Java監視器更改 - 休眠和envers

我讀過Hibernate envers以及AuditEventListener。我的問題是,儘管看到我的應用程序只能獲取數據而沒有設置它,Envers偵聽器是否可以監聽非應用程序所做的表中的更改?

回答

1

更新時間:

沒有,聽衆只能在NHibernate的鉤子只對具有Enverslisteners設置休眠的會話所做的更改聽。

你在找什麼是觸發器或數據庫事件。我使用觸發器Postgresql做了一個概念驗證,listennotify這似乎在某些條件下工作。儘管對於支持某種通知系統的每個SQL數據庫,Postgresql所使用的體系結構都是相同的。

對於Oracle:

  • 創建更改see here
  • 寫在一些表中的變化信息的回調
  • 在您的應用程序
  • 民調變化信息表,看是否有變化,並對其進行處理
+0

Postgresql不是一個選項,因爲我必須連接到Oracle數據庫。不完全確定你對監聽者所說的只是NHibernate的鉤子,正如我所提到的,envers擁有審計監聽器 – PDStat 2012-01-11 14:20:02