实体退出@Transactional上下文时的Spring回调?

时间:2012-07-12 19:50:53

标签: spring hibernate transactional hibernate-onetomany entitylisteners

Spring是否有任何钩子在事务上下文的出口处为每个实体调用实体或实体侦听器上的方法?

我们使用Spring和Hibernate来管理一堆我们也为搜索索引的实体。我们目前使用具有Hibernate的@PreUpdate方法的实体监听器来在创建或修改实体时执行重新索引。当然,此事件仅在实体的一个或多个属性(即其数据库行中的值)更新时触发。

当实体具有非平凡子属性的@OneToMany映射时,会发生此问题。更新其中一个子属性时,在父实体上调用PreEpdate回调

我们已经跟踪了属性的更新时间,但我们希望等到所有更新都有 在触发重新索引之前完成。这样一个reindex电话的最佳地点是什么? PreUpdate适用于大多数情况,但是这种皱纹让我想知道当实体离开@Transactional范围时是否存在钩子。或者,当一个OneToMany子项被持久化时,是否有一种Hibernate方法可以触发父对象的回调?

1 个答案:

答案 0 :(得分:1)

我认为方面是救援。看一下10.5.8在spring文档中建议事务操作Advising transactional operations这将帮助你编写@Transactional方法的方面,然后你做索引。