更改域对象的通知(Hibernate / Java)

时间:2009-10-28 18:05:14

标签: java hibernate notifications

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

总结要求:

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

1 个答案:

答案 0 :(得分:3)

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

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

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