使用 LinearStateQueryCriteria 时,如何获取按修改顺序排序的查询输出
When using LinearStateQueryCriteria, How to get the output of the query sorted in order of modification
当使用 LinearStateQueryCriteria 时,
假设我有以下状态都具有相同的 linearId,
S4 (unconsumed) created at t4
S3 (consumed) created at t3
S2 (consumed) created at t2
S1 (consumed) created at t1
如何检索 StateStatus = CONSUMED 的最新状态?是否可以按某个时间戳对结果列表进行排序?
应该可以通过使用 status = Vault.StateStatus.CONSUMED 然后在 queryBy
中指定排序
val queryService = VaultQueryService<YourModelStateClass>
val criteria = QueryCriteria.LinearStateQueryCriteria(status = Vault.StateStatus.CONSUMED)
queryService.queryBy(
criteria = criteria,
sorting = Sort(
setOf(
Sort.SortColumn(
SortAttribute.Custom(
YourModelStateSchema::class.java,
YourModelStateSchema::updatedDatetime.name),
Sort.Direction.DESC
)
)
)
)
您可以尝试为 vaultQueryBy 函数指定排序条件,例如:
val sortAttribute = SortAttribute.Standard(Sort.VaultStateAttribute.RECORDED_TIME)
val criteria = QueryCriteria.VaultQueryCriteria(stateRefs = listOf(stateRefs.first(), stateRefs.last()))
val results = rpcOps.vaultQueryBy<IOUState>(criteria, sorting = Sort(setOf(Sort.SortColumn(sortAttribute, Sort.Direction.ASC))))
当使用 LinearStateQueryCriteria 时,
假设我有以下状态都具有相同的 linearId,
S4 (unconsumed) created at t4
S3 (consumed) created at t3
S2 (consumed) created at t2
S1 (consumed) created at t1
如何检索 StateStatus = CONSUMED 的最新状态?是否可以按某个时间戳对结果列表进行排序?
应该可以通过使用 status = Vault.StateStatus.CONSUMED 然后在 queryBy
中指定排序val queryService = VaultQueryService<YourModelStateClass>
val criteria = QueryCriteria.LinearStateQueryCriteria(status = Vault.StateStatus.CONSUMED)
queryService.queryBy(
criteria = criteria,
sorting = Sort(
setOf(
Sort.SortColumn(
SortAttribute.Custom(
YourModelStateSchema::class.java,
YourModelStateSchema::updatedDatetime.name),
Sort.Direction.DESC
)
)
)
)
您可以尝试为 vaultQueryBy 函数指定排序条件,例如:
val sortAttribute = SortAttribute.Standard(Sort.VaultStateAttribute.RECORDED_TIME)
val criteria = QueryCriteria.VaultQueryCriteria(stateRefs = listOf(stateRefs.first(), stateRefs.last()))
val results = rpcOps.vaultQueryBy<IOUState>(criteria, sorting = Sort(setOf(Sort.SortColumn(sortAttribute, Sort.Direction.ASC))))