Eu posso ter estado em uma situação semelhante onde eu queria o Spring Data JPA
@CreatedDate
anotação para funcionar, mas não precisava da auditoria em nível de usuário que é descrita de outra forma em sua documentação. Para que a auditoria baseada em anotações funcionasse, tive que adicionar uma classe ao meu projeto que implementava
org.springframework.data.domain.AuditorAware
. Isso é estranho porque você não parece realmente usar o valor retornado do getCurrentAuditor()
método que você implementará; o meu apenas retorna null
. public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Eu então precisei referenciar meu "objeto nulo"
AuditorAware
implementação em uma entrada no meu applicationContext
para ativar a auditoria JPA. Eu tive que me certificar de fazer isso antes da linha que especifica o jpa:repositories
. Isso se parece com algo como:<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Eu também tive que adicionar um
orm.xml
arquivo e precisava referenciá-lo formalmente como uma propriedade do meu entityManagerFactory
feijão, assim:<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Certifique-se de que este
META-INF/orm.xml
a entrada é armazenada com a sua saída de compilação (a minha está no meu WAR em WEB-INF/classes
. Esse
orm.xml
arquivo, para registro, continha alguns clichês, que podem ser encontrados na resposta a esta pergunta relacionada. Foi uma quantidade razoável de trabalho quando eu consegui isso funcionando. Você pode preferir sua solução de trabalho anterior!