Как использовать onAfterSave для создания журналов аудита в базе данных mongodb - PullRequest
0 голосов
/ 27 сентября 2019

Я использую spring-data-mongodb и хочу сохранить свой журнал аудита в MongoDB как отдельную коллекцию, которая принимает каждое действие создания, обновления и удаления в счетчике.

Есть ли какое-либо решение, например springboot AuditingEntityListener, который использует @PostPersist, @PostUpdate, @ PostRemove.

Для того же самого выше я пытался

@Component
public class MongoListener extends AbstractMongoEventListener<Account> 
{

    @Override
    public void onAfterSave(AfterSaveEvent<E> event) {

       if (LOG.isDebugEnabled()) {
                LOG.debug("onAfterSave({}, {})", event.getSource(), 
     event.getDocument());
       }
        AuditLog auditLog = new AuditLog();
        auditLog.setEventType(AuditAction.CREATE.value());
        auditLog.setCommitVersion(1);
        auditLog.setNewValue(event.getSource());
        auditLog.setOldValue(event.getSource());
        auditLogRepository.save(auditLog);

    }

, но здесь это данные много раз, пока он не выдаст исключение переполнения базы данных.любая помощь в создании этого журнала аудита будет очень благодарна enter code here.

...