我正在编写一个服务器端应用程序来监视数据库的更改,我打算用Hibernate来做这件事。我想设置一个监听器,以便如果对数据进行任何更改,任何已注册的观察者都可以被告知有更新并发送单独的请求来拉它。
我已经阅读过Hibernate envers以及AuditEventListener。我的问题是,虽然看到我的应用程序只会获取数据而不设置它,但是Envers侦听器是否可以监听不是由我的应用程序生成的表中的更改?
答案 0 :(得分:1)
更新:
不,侦听器只是NHibernate中的挂钩,它只监听Hibernate会话中设置Enverslisteners的更改。
您正在寻找的是触发器或数据库事件。我使用触发器listen
和notify
对Postgresql进行了概念验证,这似乎在某些条件下有效。虽然它对于Postgresql所使用的架构对于支持某种通知系统的每个SQL数据库都是相同的。
对于Oracle: