sql >> Databáze >  >> RDS >> PostgreSQL

Anotace Spring Data @CreatedDate mi nefunguje

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í!



  1. Jak navrhnout systém připravený na lokalizaci

  2. Sloupec identity Oracle a vložte do select

  3. count(*) a count(název_sloupce), jaký je rozdíl?

  4. Jak vytvořit uživatele v PostgreSQL