I may have been in a similar situation where I wanted the Spring Data JPA @CreatedDate
annotation to work, but had no need for the user-level auditing that is otherwise described in their documentation.
To get the annotation-based auditing to work, I had to nonetheless add a class to my project that implemented org.springframework.data.domain.AuditorAware
. This is odd because you don't actually seem to use the value returned from the getCurrentAuditor()
method that you'll be implementing; mine just returns null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
I then needed to reference my "null object" AuditorAware
implementation in an entry in my applicationContext
to activate the JPA auditing. I had to make sure I did this before the line that specifies the jpa:repositories
. This looks something like:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
I also had to add an orm.xml
file, and needed to formally reference it as a property of my entityManagerFactory
bean, like so:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Make sure this META-INF/orm.xml
entry is stored with your compile output (mine is in my WAR under WEB-INF/classes
.
That orm.xml
file, for the record, contained some boilerplate, which can be found in the answer to this related question.
It was a fair amount of work when I got this working. You may prefer your previous working solution!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…