0

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

我们使用Spring和Hibernate来管理一系列我们也为搜索而编制索引的实体。我们目前使用Hibernate的@PreUpdate方法的实体监听器在创建或修改实体时执行reindex。当然,只有在更新了一个或多个实体自己的属性(即其数据库行中的值)时才会触发此事件。

当一个实体对非平凡的子属性有一个@OneToMany映射时,就会出现这个问题。当其中一个子属性更新时,PreUpdate回调是而非在父实体上调用。

我们已经跟踪时,性能更新,但我们要等到所有的更新都 完成触发之前重新索引。什么是最好的地方来进行这样的重新索引呼叫?更新前的适用于大多数情况,但这种皱纹使我不知道是否有当实体离开@Transactional范围的钩子。另外,是否有一个休眠的方式来触发一个OneToMany孩子持久时父母的回调?

回答

1

我认为方面是救援。有春天文档中提供咨询事务操作Advising transactional operations看看节10.5.8这将帮助你写身边@Transactional方法方面,然后你做索引。