【问题标题】:Java monitor changes in database - Hibernate and enversJava 监控数据库中的变化 - Hibernate 和 envers
【发布时间】:2012-01-11 11:25:30
【问题描述】:

我正在编写一个服务器端应用程序来监控数据库的变化,我打算用 Hibernate 来做这件事。我想设置一个监听器,这样如果对数据进行了任何更改,任何注册的观察者都可以被告知有更新并发送单独的请求来拉取它。

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

【问题讨论】:

    标签: java hibernate hibernate-envers


    【解决方案1】:

    更新:

    不,监听器只是 NH​​ibernate 中的钩子,它只监听设置了 Enverslisteners 的 Hibernate 会话所做的更改。

    您正在寻找的是触发器或数据库事件。我使用触发器、listennotify 对 Postgresql 进行了概念验证,这似乎在某些条件下有效。虽然 Postgresql 使用的架构对于每个支持某种通知系统的 SQL 数据库都是相同的。

    对于甲骨文:

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

    【讨论】:

    • Postgresql 在这里不是一个选项,因为我必须连接到 Oracle 数据库。不完全确定你所说的关于监听器的只是 NH​​ibernate 的钩子,正如我提到的那样,envers 有审计监听器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 2011-09-01
    相关资源
    最近更新 更多