2014-11-13 1 views
2

저는 Spring 데이터를 사용하여 Mongodb과 응용 프로그램을 통합합니다. 사용 케이스 중 하나에서 , 나는 우리의 몽고 컬렉션에서 문서 집합을 업데이트updateMulti mongooperation에 해당하는 AbstractMongoEventListener 메서드는 무엇입니까?

MongoOperation.updateMulti (쿼리, 설정 ..., Lead.class)

메소드를 호출. 는 또한 리스너 콩은 내가 mongoOperation.updateMulti이 실행될 때 이러한 방법 중 어느 것도 해고받을 것을 관찰

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 
    } 
} 

다음과 같이 특정 컬렉션 (리드)에서 이벤트를 수신 할 AbstractMongoEventListener를 확장 등록,하지만 그들은 얻을 mongoOperation.save (lead)가 실행될 때 호출됩니다.

이 updateMulti/update 조작에 사용할 수있는 동등한 리스너 메소드는 무엇입니까? 소스 코드에 대해 살펴 경우

답변

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는 maybeEmitEvent (...)를 청취자의 트리거를 포함하지 않는 doUpdate 메소드를 호출합니다.

doRemove-Method와 비교하여 remove에서 이벤트를 호출합니다.

약간 불일치가있는 것 같습니다.

+0

귀하의 회신에 Martin 감사합니다. –

+1

버그가 더 중요한 것으로 간주 될 수 있습니다. 이벤트를 트리거하지 않은 이유는 무엇입니까? –