Možná jsem byl v podobné situaci, kdy jsem chtěl Spring Data JPA @CreatedDate
anotace fungovala, ale nepotřebovali auditování na uživatelské úrovni, které je jinak popsáno v jejich dokumentaci.
Aby auditování založené na anotacích fungovalo, musel jsem do svého projektu přidat třídu, která implementovala org.springframework.data.domain.AuditorAware
. To je zvláštní, protože se zdá, že ve skutečnosti nepoužíváte hodnotu vrácenou z getCurrentAuditor()
metoda, kterou budete implementovat; moje jen vrátí null
.
public class NullAuditorBean implements AuditorAware {
@Override
public Object getCurrentAuditor() {
return null;
}
}
Poté jsem potřeboval odkazovat na svůj "nulový objekt" AuditorAware
implementace v záznamu v mém applicationContext
aktivovat audit SPS. Musel jsem se ujistit, že jsem to udělal před řádkem, který určuje jpa:repositories
. Vypadá to nějak takto:
<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>
Také jsem musel přidat orm.xml
a potřeboval jsem na něj formálně odkazovat jako na vlastnost mé entityManagerFactory
fazole, takhle:
<property name="mappingResources">
<value>META-INF/orm.xml</value>
</property>
Ujistěte se, že tento META-INF/orm.xml
záznam je uložen s vaším výstupem kompilace (moje je v mém WAR pod WEB-INF/classes
.
Ten orm.xml
soubor, pro záznam, obsahoval nějaké standardní informace, které lze nalézt v odpovědi na tuto související otázku.
Bylo to pořádné množství práce, když se mi to podařilo. Můžete dát přednost předchozímu pracovnímu řešení!