【发布时间】:2010-11-24 14:01:58
【问题描述】:
我想告诉 hibernate 在我的数据库中插入新行时给我一个回调通知(这一行是由另一个系统/应用程序插入的。)
我正在使用 mysql 集群并复制集群内的数据库。一旦某些数据库发生更改,必须立即通知其他系统有关此更改。
Hibernate 是否支持这种功能?我假设我必须在数据库层上有某种触发器或过程。
【问题讨论】:
-
+1 发人深省的问题
我想告诉 hibernate 在我的数据库中插入新行时给我一个回调通知(这一行是由另一个系统/应用程序插入的。)
我正在使用 mysql 集群并复制集群内的数据库。一旦某些数据库发生更改,必须立即通知其他系统有关此更改。
Hibernate 是否支持这种功能?我假设我必须在数据库层上有某种触发器或过程。
【问题讨论】:
正如 tkopec 所述,除非您有办法让数据库通知您(通常通过某种网络协议),否则您需要定期检查相关表的行。我确实知道有一些模块可以为不同的数据库执行此操作,但我不确定我是否可以为它提出一个特定的用例。
【讨论】:
您可以注册拦截器来监控您的应用程序完成的操作。但不是其他修改AFAIK。我能想到的唯一解决方案是某种轮询您的数据库。除非您的数据库有某种方式通知您更改。但它一定是你的数据库而不是 Hibernate。
【讨论】: