gpt4 book ai didi

java - 外部对象引用/多对象提交

转载 作者:行者123 更新时间:2023-12-02 11:08:02 24 4
gpt4 key购买 nike

首先,JaVers 看起来是一个很棒的产品,所以感谢所有为其做出贡献的人。

但在我的团队做出 promise 之前,我们很好奇它为对多个集合中的文档更改进行分组提供了哪些支持或模式。

想象以下域模型:

class User {
String username;
List<String> roles;
}

class Role {
String id;
List<String> permissions;
}

为了获取特定用户和关联角色的更改日志,我可以想象这种“手动”策略:

UserEntity targetUser = null; // Assume valid user
Changes userChanges = javers.findChanges(byInstanceId(targetUser.getId(), UserEntity.class).build());

List<Changes> roleChanges = targetUser.getRoles().stream()
.map(role -> javers.findChanges(byInstanceId(role.getContextId(), RoleEntity.class)
.from(targetUser.getCreateTime())
.build()))
.collect(toList());

// Manually merge these two sets of changes.

这是我们能做的最好的事情吗?或者是否有其他模式/ Hook 用于对模型之间的更改进行分组,特别是那些将“外部对象 id”作为其文档一部分的模型。

谢谢。

最佳答案

我建议这个模型:

class User {
String username;
List<Role> roles;
}

class Role {
String id;
List<String> permissions;
}

然后,您可以使用影子查询来读取具有角色的用户。请参阅https://javers.org/blog/2017/12/javers-vs-envers-comparision.html#reconstructing-full-object-graphs

关于java - 外部对象引用/多对象提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50787098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com