Ik heb misschien in een vergelijkbare situatie gezeten waarin ik de Spring Data JPA @CreatedDate
wilde hebben annotatie om te werken, maar hadden geen controle op gebruikersniveau nodig die anders wordt beschreven in hun documentatie.
Om de op annotaties gebaseerde auditing te laten werken, moest ik niettemin een klasse aan mijn project toevoegen die org.springframework.data.domain.AuditorAware
implementeerde. . Dit is vreemd omdat u de waarde die wordt geretourneerd door de getCurrentAuditor()
niet echt lijkt te gebruiken methode die u gaat implementeren; de mijne retourneert gewoon null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Ik moest toen verwijzen naar mijn "null-object" AuditorAware
implementatie in een item in mijn applicationContext
om de JPA-audit te activeren. Ik moest ervoor zorgen dat ik dit deed vóór de regel die de jpa:repositories
specificeert . Dit ziet er ongeveer zo uit:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Ik moest ook een orm.xml
. toevoegen bestand, en moest er formeel naar verwijzen als een eigenschap van mijn entityManagerFactory
boon, zoals zo:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Zorg ervoor dat deze META-INF/orm.xml
invoer wordt opgeslagen met uw compile-uitvoer (de mijne staat in mijn WAR onder WEB-INF/classes
.
Dat orm.xml
bestand, voor de goede orde, bevatte enkele standaardteksten, die te vinden zijn in het antwoord op deze gerelateerde vraag.
Het was behoorlijk wat werk toen ik dit werkend kreeg. Misschien geeft u de voorkeur aan uw vorige werkende oplossing!