Jag kan ha varit i en liknande situation där jag ville ha Spring Data JPA @CreatedDate
anteckningen fungerade, men hade inget behov av den revision på användarnivå som annars beskrivs i deras dokumentation.
För att få den anteckningsbaserade revisionen att fungera var jag ändå tvungen att lägga till en klass i mitt projekt som implementerade org.springframework.data.domain.AuditorAware
. Detta är konstigt eftersom du faktiskt inte verkar använda värdet som returneras från getCurrentAuditor()
metod som du kommer att implementera; min returnerar bara null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Jag behövde sedan referera till mitt "nullobjekt" AuditorAware
implementering i en post i min applicationContext
för att aktivera JPA-revisionen. Jag var tvungen att se till att jag gjorde detta före raden som anger jpa:repositories
. Det här ser ut ungefär som:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Jag var också tvungen att lägga till en orm.xml
fil och behövde formellt referera till den som en egenskap hos min entityManagerFactory
böna, som så:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Se till att denna META-INF/orm.xml
posten lagras med din kompileringsutgång (min finns i min WAR under WEB-INF/classes
.
Den där orm.xml
filen innehöll, för protokollet, en beskrivning, som kan hittas i svaret på den här relaterade frågan.
Det var en hel del jobb när jag fick det här att fungera. Du kanske föredrar din tidigare fungerande lösning!