Corda中的保险柜查询

时间:2019-06-07 17:15:21

标签: corda

我在模式类中具有映射,其中一个策略类型可以由多个用户使用。策略与用户之间的一对多关系。创建了一个users表,其中包含一列引用策略ID的列。

我想编写保管库查询以获取与其用户一起使用的策略。

注意:策略和用户具有不同的状态/架构类。

是否可以在多个状态下编写保管库查询。

1 个答案:

答案 0 :(得分:0)

您绝对可以-您需要创建VaultQueryCriteria,使节点查找两种状态类型。

您可以通过向VaultQueryCriteria传递一组状态类来执行此操作。我在下面提供了一个示例片段,其中包含一些任意状态类型(DiceRollState和SettlementState)。重要的是要注意,您需要将ContractState指定为queryBy方法的类型参数(假设所有状态都应将ContractState子类化)

serviceHub.vaultService.queryBy<ContractState>(QueryCriteria.VaultQueryCriteria(contractStateTypes = setOf(DiceRollState::class.java, SettlementState::class.java)))