是否可以链接不同的Javer提交并使用深阴影范围或任何其他方式将它们一起获取?

时间:2019-06-27 08:39:51

标签: javers

创建快照时,我正在Javers中寻找功能,以将其与其他先前创建的快照链接。

我查看了阴影的commit-deep范围,但它仅获取具有相同提交id的快照。

我想要这样的东西:

实体雇员与实体地址链接到一个人。 我保存了一个地址,该地址存储带有提交c1的地址快照A1。 现在,我保存了一个链接到该地址的员工,该地址存储着提交为c2的员工快照E1。

我无法同时获取这两个快照A1和E1,因为它们处于不同的提交(c1和c2)中。

是否可以通过当前的Javers获得此信息,或者我们是否需要为此添加功能,或者这是一个过大的杀伤力?

功能可以是这样的:

如果我使用新的作用域(例如,像链接深层作用域)来查询Employees(byInstanceId之类)的影子,它应该使用commit-deep给我Employee的所有影子,以及所有链接的影子情况下,快照E1和A1

这样,我们可以跟踪员工在历史记录中的住址。

1 个答案:

答案 0 :(得分:0)

您可以使用Deep+阴影范围。

请参阅https://javers.org/documentation/jql-examples/#query-for-shadows

有四个范围。范围越广,将更多的对象阴影加载到结果图中(并且执行的数据库查询越多)。作用域在ShadowScope枚举中定义。

  • 浅-有限作用域-仅从直接在主JQL查询中选择的快照创建阴影。
  • 子值对象-JaVers加载所选实体拥有的所有子值对象。从3.7.5版本开始,此范围已为所有Shadow查询隐式启用,并且不能禁用。
  • 深度提交-从主查询触摸的提交中保存的所有快照中创建阴影。
  • Deep +-JaVers尝试还原已加载(可能)所有对象的完整对象图。