是否可以在spring-data-elasticsearch中拦截保存或加载事件?

时间:2019-06-03 11:31:38

标签: java spring-data spring-data-elasticsearch

spring-data-jpa中,我们可以使用JPA的注释,例如@PrePersist和朋友来拦截保存/加载事件。

spring-data-mongodb中,出于相同的目的,我们可以使用lifecycle events

spring-data-elasticsearch中是否有类似内容?

3 个答案:

答案 0 :(得分:1)

目前,像spring-data-mongodb中一样,spring-data-elasticsearch中没有生命周期挂钩。拥有它们肯定会很好。

我为此打开了issue

答案 1 :(得分:0)

说实话,我不了解elasticsearch,但因为它是Spring Data,所以我建议您使用像这样的EventHandler:

@Component
@RepositoryEventHandler(YourDomainClass.class)
public class YourDomainClassEventHandler {

    @HandleBeforeCreate
    public void handleYourDomainClassCreate(YourDomainClass yourDomainClass) {
        //do some action
    }
}

也有诸如@HandleBeforeSave@HandleAfterSave之类的注释。它是spring-data-rest-core库的一部分。

答案 2 :(得分:0)

EntityCallback支持是在几个月前实施的,请参见https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#entity-callbacks

当前,支持响应式和阻塞式的保存后,转换后,转换前实体回调。