什么是与updateMulti mongooperation等效的AbstractMongoEventListener方法

时间:2014-11-13 16:16:25

标签: mongodb spring-data spring-data-mongodb

我正在使用spring-data将我们的应用程序与Mongodb集成。 在其中一个用例中,我调用了

MongoOperation.updateMulti(query,set ..,Lead.class)

更新mongo集合中的一组文档的方法。 我还注册了一个监听器bean,它扩展了AbstractMongoEventListener来监听这个特定Collection(Lead)上的事件,如下所示

public class LeadListener extends AbstractMongoEventListener<Lead> {
    @Override
    public void onBeforeSave(Lead p, com.mongodb.DBObject dbo) {
        //do something
    }

    @Override
    public void onBeforeConvert(Lead p) {
        //do something
    }
}

我发现当执行mongoOperation.updateMulti时,这些方法都不会被触发,但是当执行mongoOperation.save(lead)时会调用它们。

我可以用于此updateMulti / update操作的等效侦听器方法是什么。

1 个答案:

答案 0 :(得分:1)

https://github.com/spring-projects/spring-data-mongodb/blob/master/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoTemplate.java?source=c

如果查看源代码,updateMulti会调用doUpdate方法,该方法不包含任何侦听器触发器mayEmitEvent(...)。

与doRemove-Method相比,后者在删除时调用事件。

似乎有一点点不一致。