2012-01-11 36 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