MongoDB Lebenszyklus-Ereigniszugriff auf MongoTemplate

8

Ich versuche ein Versionsverwaltungssystem für meine mongodb-Dokumente mit Spring Data Mongodb zu implementieren. Ich dachte, ich würde die Mongo-Lebenszyklus-Ereignisse nutzen

Mongo Lifecycle Events im Frühjahr

Ich wollte onBeforeSave anhören und die ursprüngliche Version des Dokuments abrufen und den Unterschied zwischen den beiden erhalten.

%Vor%

Das Problem, das ich habe, ist, dass ich keinen Hinweis auf mongoOperations bekommen kann. Es erstellt weiterhin eine zirkuläre Referenz. Ob ich @Autowire:

Autowire-Einspritzung

Mongo-Konfiguration:

%Vor%

Listener:

%Vor%

oder verwenden Sie Setter Injektion

Settereinspritzung

Mongo-Konfiguration:

%Vor%

Listener:

%Vor%

Es macht für mich Sinn, die Versionierung des Dokuments in den Lebenszyklusereignissen zu handhaben. Ich habe eine ähnliche Sache mit PHP / Doctrine / Mongo

gemacht

Wie ich es mit Doctrine / PHP gemacht habe

Im Fall von Doctrine erhalte ich einen Verweis auf den Document Manager im Lebenszyklus-Callback. Irgendwelche Hinweise, wie ich das Gleiche mit Spring Data machen kann?

    
eric 27.08.2012, 15:29
quelle

1 Antwort

0

Ich habe versucht, einige Java-basierte Konfigurationen

  1. Mit explizitem Parameter:

    %Vor%
  2. Mit @Autowired

    %Vor%

Alles hat perfekt funktioniert.

  1. Eine Option ist - Sie haben gerade vergessen,

    hinzuzufügen %Vor%

    in Ihren xml-Konfigurationen, obwohl dies den Fehler bei der Setter-Injektion nicht erklären würde.

  2. Vielleicht haben Sie irgendwo einen Bean-Namen überschrieben

Und viele mehr.

Wie auch immer, das Problem liegt darin, wie Sie Spring verwenden, nicht in den von Ihnen bereitgestellten Frühlingskonfigurationen, es ist in Ordnung.

    
mavarazy 24.02.2015 06:57
quelle