页面规范对Vault.Trackby的影响

时间:2018-06-15 10:29:27

标签: corda

我最近获得了比使用vault.trackby函数测试我的cordapp时讨价还价更多的结果并且破坏了默认页面规范限制。 因此,为了确认我对页面规范如何与trackby一起使用初始快照的理解,这里有一个场景和几个问题。

假设我在保险库中有1000个州符合我的查询条件。 因此,我使用页面规范调用vault.trackby,其中pageNumber为1,页面大小为250

  1. 我假设我将使用初始快照获得前250个结果,这是正确的吗?

  2. 剩余的750个结果是否会随着更新而回归?或者只会返回新的更新。只有通过使用trackByqueryBy,第2,3,4页等再次查询才能访问其他750个州。

  3. 我希望这是有道理的。 感谢

1 个答案:

答案 0 :(得分:0)

您问题的具体答案:

1)正确

2)仅新的更新将被流回,并且您将需要发出另一个queryBy(不要再次使用trackBy)明确要求第2、3、4页。 但是,注意:后续查询(例如,针对第2、3、4页的查询)可能包含新结果-包括来自初始trackBy查询的流式更新-因为每个快照查询在特定的时间都是唯一的。

trackBy的预期使用模式是获取适合单个页面的 bounded 快照(由关联的查询条件定义),从而保证流式更新的原子性(例如。没有重复)。

推荐的使用方式是:

a)首先使用一些有条件的条件(例如,所有早于24小时的条目)发出快照(queryBy)查询,然后是

b)使用受限条件(例如,过去24小时内的所有条目)进行第二次流式查询(trackBy

因此,总而言之,应谨慎使用trackBy的分页语义,并应了解后续的页面请求可能包含不同的结果(基于自原始trackBy查询以来发生的任何CRUD操作)