如何从 Javers 中的阴影元素中获取版本

Posted

技术标签:

【中文标题】如何从 Javers 中的阴影元素中获取版本【英文标题】:How to get Version from shadow element in Javers 【发布时间】:2020-09-16 21:59:58 【问题描述】:

我正在尝试从 Javers 的阴影中获取版本。

目前正在通过这种方式。这是正确的实现吗,我认为这种方法会稍微影响性能。我在这里粘贴代码

    List<Shadow<Season>> shadows= javers.findShadows(QueryBuilder.byInstance(optionalSeason.get()).build());

    for (Shadow<Season> shadow : shadows) 
     List<CdoSnapshot> changes=javers.findSnapshots(QueryBuilder.byInstanceId(id,Season.class).withCommitId(shadow.getCommitId()).build());

     changes.get(0).getVersion()
                  

如果有更好的方法,请告诉我,谢谢

【问题讨论】:

【参考方案1】:

好问题,看起来你不能轻易得到它,因为 Shadow 类中缺少此信息:

public class Shadow<T> 
    private final CommitMetadata commitMetadata;
    private final T it;

由于每个Shadow 都是从一个CdoSnapshot 创建的,因此Shadow 类可以轻松扩展为:

public class Shadow<T> 
    private final CdoSnapshot snapshot;
    private final T it;

如果需要,您可以将此更改贡献给 Javers。

【讨论】:

以上是关于如何从 Javers 中的阴影元素中获取版本的主要内容,如果未能解决你的问题,请参考以下文章

如何访问 C 中的阴影全局变量?

如何从android API 23和更高版本的操作栏中删除阴影

CSS页面剥离底部和左右阴影

如何快速从 UICollectionView 中的 UIView 中删除焦点阴影?

仅用 CSS 实现多彩智能的阴影

从图例元素中删除字段集边框和框阴影