PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Анотацията на Spring Data @CreatedDate не работи за мен

Може да съм бил в подобна ситуация, когато исках Spring Data JPA @CreatedDate анотацията да работи, но нямаше нужда от одит на ниво потребител, който иначе е описан в тяхната документация.

За да накарам одита, базиран на анотации, да работи, въпреки това трябваше да добавя клас към моя проект, който имплементира org.springframework.data.domain.AuditorAware . Това е странно, защото всъщност не изглежда да използвате стойността, върната от getCurrentAuditor() метод, който ще прилагате; моят просто връща null .

public class NullAuditorBean implements AuditorAware {

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

След това трябваше да препратя моя "нулев обект" AuditorAware реализация в запис в моя applicationContext за да активирате одита на JPA. Трябваше да се уверя, че съм направил това преди реда, който определя jpa:repositories . Това изглежда нещо като:

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

Трябваше също да добавя orm.xml файл и трябва официално да го препратя като свойство на моя entityManagerFactory боб, така:

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

Уверете се, че това META-INF/orm.xml записът се съхранява с вашия компилационен изход (моят е в моята WAR под WEB-INF/classes .

Този orm.xml файл, за протокола, съдържаше някакъв шаблон, който може да се намери в отговора на този свързан въпрос.

Беше доста работа, когато накарах това да работи. Може да предпочетете предишното си работно решение!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Between клауза с колони с низове

  2. Сравняване на балансьори на натоварване за PostgreSQL

  3. Задайте празните низове ('') на NULL в цялата база данни

  4. Превръщане на произволно много редове в колони в PostgreSQL

  5. Има ли начин да се зададе време на изтичане, след което запис на данни се изтрива автоматично в PostgreSQL?