Wie würde ich $ Push mit MongoRepository in Spring Data machen?

7

Ich habe eine MongoDB-Struktur wie folgt:

%Vor%

Ich verwende das Spring Data MongoDB-Paket, um auf diese Daten zuzugreifen. Es wird hauptsächlich Schreibvorgänge auf die Daten geben, daher würde ich gerne die native "$ push" -Funktion verwenden, um "Ereignisse" zu dem "Datensatz" hinzuzufügen, aber ich kann nicht herausfinden, wie man es mit MongoRepository ohne Abrufen macht die gesamte Aufzeichnung und dann schieben und speichern Sie es zurück?

Wenn Sie MongoRepository verwenden, haben Sie nie eine konkrete Implementierung. Spring behandelt alles basierend auf Annotationen oder den Namen der Methoden selbst

AKTUALISIEREN

Wäre es richtig, eine benutzerdefinierte Methode im Repository zu implementieren und dann MongoTemplate manuell zu verwenden?

Beispiel:

FooRepository.java

%Vor%

FooRepositoryCustom.java

%Vor%

FooRepositoryImpl.java

%Vor%     
jr. 09.01.2013, 22:20
quelle

2 Antworten

13

Ja, Sie müssen eine benutzerdefinierte Methode für das Repository implementieren, und Ihre push -Methode würde etwa so aussehen:

%Vor%     
Jean-Philippe Bond 10.01.2013, 17:07
quelle
5

Sie können dies tun, aber ich stieß auf ein Problem, bei dem das Feld "_class" nicht beibehalten wurde. Das gedrückte Objekt selbst wurde durch den konfigurierten Konverter ausgeführt, aber aus irgendeinem Grund wurde das "_class" -Feld dieses gedrückten Objekts nicht geschrieben. Wenn ich jedoch den Konverter injizierte und das Objekt selbst in ein DBObject schrieb, wurde das Feld "_class" beibehalten und geschrieben. Das wird so:

%Vor%     
Mark Kegel 30.08.2013 16:38
quelle