2012-03-02 4 views
1

Morphia와 Mongo를 매핑 중입니다. Morphia에는 변경된 필드에만 문서의 업데이트를 적용 할 수있는 많은 최적화 기능이 있습니다.Morphia를 사용하여 Mongo의 모든 필드를 간단히 업데이트 할 수 있습니까?

감사합니다. 그러나이 순간에는 최적화되지 않은 사례가 필요합니다. 엔티티를 저장하고 필드가 변경된 것에 대해 걱정하지 않으려합니다.

물론 save()를 호출 할 수는 있지만,이 메서드는 마치 새 객체를 생성하는 것처럼 수명주기 메소드를 호출합니다.

아마도 대답은 : save()이며 내 라이프 사이클 메소드가 새 엔티티의 생성이 아니라 "다시 저장"이라는 사실을 감지 할만큼 똑똑 할 수 있도록해야합니다.

더 나은 접근 방법이 있다면, 분명히 그것에 대해 듣게 될 것입니다. 당신이 엔티티가 이미 지속되었는지 확인하려면이 첫 번째 저장에 자동 생성됩니다로

@PrePersist 
public void prePersist() { 
    creationDate = (creationDate == null) ? new Date() : creationDate; 
    lastChange = (lastChange == null) ? creationDate : new Date(); 
} 

, 아마도 null 값에 대한 id를 확인할 것 :

+0

관심 분야 : 라이프 사이클 메소드를 호출하는 데 왜 그런 문제가 있습니까? – xeraa

+0

그렇지 않습니다. 그러나 프레임 워크가 작동하는 방식으로 작업하기 시작할 때마다 필자는 올바르게 사용하고 있는지 확인하려고 노력합니다. –

답변

1

내 prepersist는 다음과 같이 보인다.

+0

여러 가지 가능한 해결책이 있습니다. 이것은 분명히 그 중 하나입니다. 제 생각에 일반적인 대답은 _save이고 "다시 저장하십시오"라고 생각합니다 ._ 도움을 주셔서 감사합니다. –