Mongodb Javers-Can';t在文档中跟踪mongo更新

Mongodb Javers-Can';t在文档中跟踪mongo更新,mongodb,spring-boot,javers,Mongodb,Spring Boot,Javers,我试图跟踪文档中特定字段的更改。 这是我的用户类。我想记录下使用Javers进行计数的任何变化 @Document public class User { @Id private String userId; private String name; private int count; private Date creationDate = new Date(); private Map<String, String> userSe

我试图跟踪文档中特定字段的更改。 这是我的用户类。我想记录下使用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<>();
}
这是使用MongoTemplate的updateCount方法:

@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方法调用结束时提交某种更改。
但除非我有一个实体对象,否则无法提交这些更改。我该怎么做呢?

Javers是对象审计框架,您无法跟踪Javers中直接数据库更新所做的更改。您所能做的就是获取一些Java对象(一个实体),并对其调用
javers.commit()

我不理解您的问题,请尝试在javers API
javers.commit(“AUTHOR”),的上下文中重新表述它。
基本上,我尝试的是在mongodb中执行更新,但是我不能通过Javers提交相同的内容,因为它需要一个实体来提交。但是在这里,因为更新是通过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;
    }