2009-11-04 206 views
0

我有一个在Oracle上运行的数据库。我使用Hibernate进行数据访问。无论何时将对象保存在数据库中,我都希望得到通知,以便我可以执行一些自定义工作。我想要一个“事件监听器”,如果你可以称之为的话。有没有办法来检测这样的任务?休眠事件检测器

回答

1

Hibernate的水平,这是使用interceptors

在甲骨文级别进行,这就是所谓的触发器:

create or replace trigger <triggername> 
before/after insert or update or delete 
on <tablename> 
for each row/for each statement 
... 
+0

是否有可能转而使用Hibernate的拦截器保存之前拦截持久化对象,更新或删除? – Attilah 2009-11-04 17:05:40

+0

对不起,我犯了一个错误。是否有可能在Hibernate中使用拦截器拦截持久对象AFTER它被保存,更新或删除? – Attilah 2009-11-04 17:07:11

+0

你看过Interceptor的例子吗?请参阅afterTransactionCompletion()方法,该方法在对象被保存/更新/删除后被称为AFTER。 – mhaller 2009-11-05 14:11:22