Ich war vielleicht in einer ähnlichen Situation, in der ich das Spring Data JPA @CreatedDate
haben wollte Anmerkung funktionieren, aber es war keine Überwachung auf Benutzerebene erforderlich, die ansonsten in ihrer Dokumentation beschrieben wird.
Damit das annotationsbasierte Auditing funktioniert, musste ich meinem Projekt dennoch eine Klasse hinzufügen, die org.springframework.data.domain.AuditorAware
implementierte . Das ist seltsam, weil Sie anscheinend nicht den von getCurrentAuditor()
zurückgegebenen Wert verwenden Methode, die Sie implementieren werden; Mine gibt nur null
zurück .
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Dann musste ich auf mein "Null-Objekt" AuditorAware
verweisen Implementierung in einem Eintrag in meinem applicationContext
um das JPA-Auditing zu aktivieren. Ich musste sicherstellen, dass ich dies vor der Zeile tat, die die jpa:repositories
angibt . Das sieht in etwa so aus:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Ich musste auch eine orm.xml
hinzufügen -Datei und musste formell als Eigenschaft meiner entityManagerFactory
referenziert werden Bohne, etwa so:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Stellen Sie sicher, dass diese META-INF/orm.xml
-Eintrag wird mit Ihrer Kompilierungsausgabe gespeichert (meiner befindet sich in meinem WAR unter WEB-INF/classes
.
Diese orm.xml
Datei enthielt, fürs Protokoll, einige Textbausteine, die in der Antwort auf diese verwandte Frage zu finden sind.
Es war eine ziemliche Menge Arbeit, als ich das zum Laufen brachte. Möglicherweise bevorzugen Sie Ihre bisherige Arbeitslösung!