我正在使用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操作的等效侦听器方法是什么。
答案 0 :(得分:1)
如果查看源代码,updateMulti会调用doUpdate方法,该方法不包含任何侦听器触发器mayEmitEvent(...)。
与doRemove-Method相比,后者在删除时调用事件。
似乎有一点点不一致。