【问题标题】:change notification on domain objects (Hibernate/Java)域对象的更改通知(Hibernate/Java)
【发布时间】:2010-12-10 23:23:30
【问题描述】:

是否有可用于订阅 Hibernate 或任何其他主流 O/R 映射框架的域对象更改的解决方案?例如,如果我在名为“Apple”的数据库中有一个表,我希望能够说“当任何 Apple 对象更改时通知我”或“当任何 Apple 对象的字段“颜色”发生更改时通知我”。当然,我期望的不仅仅是“发生了变化”的通知,而是一个已更改对象的 id 列表或已更改对象的列表。这种可扩展的解决方案会很好。

总结需求:

  1. 对数据库的所有更改都将通过 ORM
  2. 这应该是一个完整的解决方案,可以使用 "subscribe for Question q where q.title like '%hibernate%'"这样的表达式进行订阅其中“问题”是我对更新感兴趣的实体(映射到数据库中表的 Java 对象)。不需要是字符串查询,但应该有一种通用的方式来发出请求。

【问题讨论】:

    标签: java hibernate notifications


    【解决方案1】:

    生成这些通知的所有更改都会通过 ORM,还是可能通过 JDBC 或访问同一数据库的其他应用程序更改数据?

    如果所有更改都通过 ORM 并且您使用的是 Hibernate,那么您可以使用 Hibernate 的interceptors and events

    另一方面,如果对数据的所有更改都不通过 ORM 并且处理通知的代码相当简单,那么数据库触发器可能是更好的选择。

    【讨论】:

    • 嗨,唐。虽然 Hibernate 拦截器和事件可以帮助我实现自己的解决方案,但我正在寻找完整且可以使用的东西。请查看更新的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2011-12-04
    • 2022-10-12
    • 2012-05-14
    • 1970-01-01
    • 2019-06-02
    相关资源
    最近更新 更多