Во-первых, JaVers выглядит как отличный продукт, так что спасибо всем, кто внес в него свой вклад.
Но прежде чем моя команда примет это, нам любопытно, какую поддержку или шаблоны она предлагает для группировки изменений в документах по нескольким коллекциям.
Представьте себе следующие модели предметной области:
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.
Это лучшее, что мы можем сделать илиСуществуют другие шаблоны / зацепки для группировки изменений между моделями, особенно те, которые имеют «идентификатор стороннего объекта» как часть их документа.
Спасибо.