我使用的是带有Spring Boot2.1的JaVers 5.6.3。保存历史记录运行良好,而且我还可以读取对象更改。
我使用以下代码:
List<Change> changes = javers.findChanges(jqlQuery.build());我的问题是结果只包含提交id,而不包含对象版本。在数据库中有一个jv_snapshot.version字段,它包含真实的对象版本。
我怎样才能在我的代码中得到它?
发布于 2019-08-13 12:18:38
您可以使用快照获取版本,例如:
List<CdoSnapshot> snapshots = javers.findSnapshots(jqlQuery.build());
snapshots.forEach(snapshot -> {
System.out.println(snapshot.getVersion());
});发布于 2020-05-29 00:00:46
我不知道这是否有帮助,但你可以用它的版本获取整个实体
首先获取卷影,然后尝试从提交的数据库中获取快照。正如代码中给出的
List<Shadow<YourObject>> shadows= javers.findShadows(QueryBuilder.byInstance(optionalObject.get()).build());
List<CdoSnapshot> changes=javers.findSnapshots(QueryBuilder.byInstanceId(id,YourObject.class).withCommitId(shadow.get(0).getCommitId()).build());通过这种方式,你可以得到每个实体的版本,如果你找到了更好的方法,请告诉我。
https://stackoverflow.com/questions/57360854
复制相似问题