У меня есть проект с 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();
}