Potrei essere stato in una situazione simile in cui volevo lo Spring Data JPA @CreatedDate
l'annotazione per funzionare, ma non aveva bisogno del controllo a livello di utente che è altrimenti descritto nella loro documentazione.
Per far funzionare il controllo basato sulle annotazioni, ho dovuto comunque aggiungere una classe al mio progetto che implementasse org.springframework.data.domain.AuditorAware
. Questo è strano perché in realtà non sembra che tu usi il valore restituito da getCurrentAuditor()
metodo che implementerai; il mio restituisce solo null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Ho quindi dovuto fare riferimento al mio "oggetto nullo" AuditorAware
implementazione in una voce nel mio applicationContext
per attivare l'audit JPA. Dovevo assicurarmi di averlo fatto prima della riga che specifica jpa:repositories
. Assomiglia a:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Ho anche dovuto aggiungere un orm.xml
file e dovevo farvi riferimento formalmente come una proprietà del mio entityManagerFactory
fagiolo, in questo modo:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Assicurati che questo META-INF/orm.xml
la voce è memorizzata con il tuo output di compilazione (il mio è nel mio WAR in WEB-INF/classes
.
Quel orm.xml
il file, per la cronaca, conteneva alcuni standard, che possono essere trovati nella risposta a questa domanda correlata.
È stata una discreta quantità di lavoro quando ho ottenuto questo lavoro. Potresti preferire la tua precedente soluzione di lavoro!