Saya mungkin berada dalam situasi yang sama di mana saya menginginkan Spring Data JPA @CreatedDate
agar anotasi berfungsi, tetapi tidak memerlukan audit tingkat pengguna yang dijelaskan dalam dokumentasi mereka.
Agar audit berbasis anotasi berfungsi, saya tetap harus menambahkan kelas ke proyek saya yang mengimplementasikan org.springframework.data.domain.AuditorAware
. Ini aneh karena Anda tampaknya tidak benar-benar menggunakan nilai yang dikembalikan dari getCurrentAuditor()
metode yang akan Anda terapkan; milik saya baru saja mengembalikan null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Saya kemudian perlu mereferensikan "objek nol" saya AuditorAware
implementasi dalam entri di applicationContext
saya untuk mengaktifkan audit JPA. Saya harus memastikan saya melakukan ini sebelum baris yang menentukan jpa:repositories
. Ini terlihat seperti:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Saya juga harus menambahkan orm.xml
file, dan perlu mereferensikannya secara formal sebagai properti entityManagerFactory
saya kacang, seperti:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Pastikan META-INF/orm.xml
ini entri disimpan dengan hasil kompilasi Anda (milik saya ada di PERANG saya di bawah WEB-INF/classes
.
orm.xml
itu file, sebagai catatan, berisi beberapa boilerplate, yang dapat ditemukan dalam jawaban atas pertanyaan terkait ini.
Itu cukup banyak pekerjaan ketika saya membuat ini bekerja. Anda dapat memilih solusi kerja Anda sebelumnya!