我正在编写一个服务器端应用程序,它将监视数据库的更改,我计划使用Hibernate进行此操作。我想设置一个侦听器,以便如果对数据进行了任何更改,则可以通知任何已注册的观察者有更新,并发送单独的请求以将其拉出。

我已经阅读了有关Hibernate envers以及AuditEventListener的信息。我的问题是,尽管看到我的应用程序只会获取数据而不进行设置,所以Envers侦听器可以侦听应用程序未进行的表中的更改吗?

最佳答案

更新:

不,侦听器只是NHibernate中的钩子,它们仅侦听设置了Enverslisteners的Hibernate会话所做的更改。

您要查找的是触发器或数据库事件。我使用触发器,listennotify在Postgresql中进行了概念验证,这在某些条件下似乎可以使用。尽管其用于Postgresql的体系结构对于每个支持某种通知系统的SQL数据库都是相同的。

对于Oracle:


创建更改的回调see here
在某些表中写入更改信息
轮询您应用中的更改信息表,查看是否有更改并进行处理

09-08 03:09
查看更多