Javers - @JaversAuditable не выполняет метод коммита - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть проект с JPA (Eclipselink), и я настроил все так, чтобы при запуске javers.commit («Author», object); он вставляет все в таблицы базы данных аудита.

Я хочу использовать нотацию @JaversAuditable, чтобы мне не приходилось выполнять «.commit» для каждой транзакции и, посмотрев документацию, я видел это нотация.

Проблема в том, что он связан, например, с методом сохранения EntityManager, но он не запускается и не выдает никакой ошибки.

Пример:

    @JaversAuditable
    public E save(E object) {
        return this.getEntityManager().merge(object);
    }

Конфигурация:

    @Bean
    public Javers javers() {
        JaversSqlRepository sqlRepository = SqlRepositoryBuilder
                .sqlRepository()
                .withSchemaManagementEnabled(false)
                .withConnectionProvider(jpaConnectionProvider())
                .withDialect(DialectName.ORACLE).build();

        return JaversBuilder.javers().registerJaversRepository(sqlRepository).build();
    }

    @Bean
    public ConnectionProvider jpaConnectionProvider() {
        return new ConnectionProviderJavers(this.entityManager);
    }

    /**
     * Enables auto-audit aspect for ordinary repositories.<br/>
     *
     * Use {@link org.javers.spring.annotation.JaversAuditable}
     * to mark data writing methods that you want to audit.
     */
    @Bean
    public JaversAuditableAspect javersAuditable(Javers javers) {
        return new JaversAuditableAspect(javers, authorProvider());
    }

    /**
     * Required by auto-audit aspect. <br/><br/>
     *
     * Creates {@link SpringSecurityAuthorProvider} instance,
     * suitable when using Spring Security
     */
    @Bean
    public AuthorProvider authorProvider() {
        return new SpringSecurityAuthorProvider();
    }
...