sql >> Database teknologi >  >> RDS >> PostgreSQL

Spring Data @CreatedDate annotering virker ikke for mig

Jeg har muligvis været i en lignende situation, hvor jeg ønskede Spring Data JPA @CreatedDate annotering til at virke, men havde ikke behov for den revision på brugerniveau, som ellers er beskrevet i deres dokumentation.

For at få den annotationsbaserede revision til at fungere, var jeg ikke desto mindre nødt til at tilføje en klasse til mit projekt, der implementerede org.springframework.data.domain.AuditorAware . Dette er mærkeligt, fordi du faktisk ikke ser ud til at bruge den værdi, der returneres fra getCurrentAuditor() metode, som du vil implementere; min returnerer bare null .

public class NullAuditorBean implements AuditorAware {

    @Override
    public Object getCurrentAuditor() {
        return null;
    }
}

Jeg var så nødt til at henvise til mit "nul-objekt" AuditorAware implementering i en post i min applicationContext for at aktivere JPA-revisionen. Jeg var nødt til at sikre mig, at jeg gjorde dette før linjen, der specificerer jpa:repositories . Dette ser sådan ud:

<bean id="auditorBean" class="your.package.subbed.here.NullAuditorBean"/>
<jpa:auditing auditor-aware-ref="auditorBean"/>

Jeg var også nødt til at tilføje en orm.xml fil, og skulle formelt henvise til den som en ejendom tilhørende min entityManagerFactory bønne, sådan:

<property name="mappingResources">
    <value>META-INF/orm.xml</value>
</property>

Sørg for at denne META-INF/orm.xml posten er gemt med dit kompileringsoutput (min er i min WAR under WEB-INF/classes .

Den orm.xml fil, for en god ordens skyld, indeholdt en kedelplade, som kan findes i svaret på dette relaterede spørgsmål.

Det var en del arbejde, da jeg fik dette til at virke. Du foretrækker måske din tidligere arbejdsløsning!



  1. Opret en beregnet kolonne, der bruger data fra en anden tabel i SQL Server

  2. Kumulativ total i MS SQL server

  3. Skriv hurtig panda-dataramme til postgres

  4. 2 måder at sammenkæde strenge og tal i MariaDB