Mongodb Javers-Can';t在文档中跟踪mongo更新
我试图跟踪文档中特定字段的更改。 这是我的用户类。我想记录下使用Javers进行计数的任何变化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
@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 APIjavers.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;
}