Javers - не могу отслеживать обновления mon go внутри документа - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь отслеживать изменения, внесенные в указанные c поля внутри документа. Это мой пользовательский класс. Я хочу отслеживать любые изменения, сделанные в подсчете, используя Javers.

@Document
public class User {

    @Id
    private String userId;
    private String name;
    private int count;
    private Date creationDate = new Date();
    private Map<String, String> userSettings = new HashMap<>();
}

Я добавил следующий код, чтобы отслеживать каждый раз, когда создается новый объект пользователя.

@Override public User addNewUser(User user) {
        mongoTemplate.save(user);
        javers.commit("Added", user);
        return user;
    }

Это метод updateCount с использованием MongoTemplate:

@Override public boolean updateCount(String name) {
        Query query = new Query();
        query.addCriteria(Criteria.where("name").is(name));
        query.addCriteria(Criteria.where("count").gt(0));
        Update update = new Update();
        update.inc("count", -1);
        return Objects
            .requireNonNull(reactiveMongoTemplate.updateFirst(query, update, User.class).block())
            .getModifiedCount() == 1;
    }

Теперь я хочу отследить какое-либо изменение в конце вызова метода updateCount. Но эти изменения не могут быть зафиксированы, если у меня нет объекта-сущности. Как мне go об этом?

1 Ответ

0 голосов
/ 09 марта 2020

Javers - это структура аудита объектов, вы не можете отслеживать изменения, внесенные прямыми обновлениями БД в Javers. Все, что вы можете сделать, это взять некоторый Java объект (сущность) и вызвать javers.commit() для него

...