Jeg har muligvis været i en lignende situation, hvor jeg ønskede Spring Data JPA @CreatedDate
annotering til at virke, men havde ikke behov for den revision på brugerniveau, som ellers er beskrevet i deres dokumentation.
For at få den annotationsbaserede revision til at fungere, var jeg ikke desto mindre nødt til at tilføje en klasse til mit projekt, der implementerede org.springframework.data.domain.AuditorAware
. Dette er mærkeligt, fordi du faktisk ikke ser ud til at bruge den værdi, der returneres fra getCurrentAuditor()
metode, som du vil implementere; min returnerer bare null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Jeg var så nødt til at henvise til mit "nul-objekt" AuditorAware
implementering i en post i min applicationContext
for at aktivere JPA-revisionen. Jeg var nødt til at sikre mig, at jeg gjorde dette før linjen, der specificerer jpa:repositories
. Dette ser sådan ud:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Jeg var også nødt til at tilføje en orm.xml
fil, og skulle formelt henvise til den som en ejendom tilhørende min entityManagerFactory
bønne, sådan:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Sørg for at denne META-INF/orm.xml
posten er gemt med dit kompileringsoutput (min er i min WAR under WEB-INF/classes
.
Den orm.xml
fil, for en god ordens skyld, indeholdt en kedelplade, som kan findes i svaret på dette relaterede spørgsmål.
Det var en del arbejde, da jeg fik dette til at virke. Du foretrækker måske din tidligere arbejdsløsning!