Я пытаюсь отслеживать изменения, внесенные в указанные 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 об этом?