英文:
How to get Version from shadow element in Javers
问题
我正试图从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();
}
如果有更好的方法,请告诉我,谢谢
英文:
I am trying to get version from shadows in the Javers.
Currently getting through this way. is this the correct implementation, I think this method can hamper performance a little bit. I am pasting the code here
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()
}
If there is any better way, please let me know, Thanks
答案1
得分: 0
好问题,看起来你很难得到它,因为这个信息在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贡献这个变更。
英文:
Good question, looks like you can't get it easily because this information is missing in Shadow
class:
public class Shadow<T> {
private final CommitMetadata commitMetadata;
private final T it;
Since each Shadow
is created from one CdoSnapshot
, Shadow
class can be easily extended to:
public class Shadow<T> {
private final CdoSnapshot snapshot;
private final T it;
You can contribute this change to Javers if you want.
专注分享java语言的经验与见解,让所有开发者获益!
评论