执行VaultQuery

时间:2019-10-30 04:21:53

标签: corda

这里是所有初学者。

我有一个具有以下值的州:

private final Party issuer;
private final Party owner;
private final int patient;
private final String hash;

我想运行一个vaultQuery,它将在其中患者为特定ID的情况下返回交易。例如,如果患者ID为16038382,并且我已经启动了几个包含该ID的流以及具有不同患者ID的多个流,那么我只想运行vaultQuery来包含患者ID为16038382的事务。

我该怎么做?我已经阅读了Vault Query API,但这对我来说没有任何意义。我是否必须设置另一个流程来获取所需的数据?我需要在执行节点的外壳程序中输入什么?非常感谢您提供一些答案,并在此先感谢您。

2 个答案:

答案 0 :(得分:0)

如果这只是出于开发目的,并且您只想随便看看您的保管库。 我建议您看一下我们最新的vscode扩展,其中我们实现了一个用于查看Vault的UI。 链接:https://marketplace.visualstudio.com/items?itemName=R3.vscode-corda

如果您是Corda的新手,请随时加入我们的公共休闲@ slack.corda.net

答案 1 :(得分:0)

确保您有一个persistentState(例如示例persistentPatientState),并使用如下代码:

val generalCriteria = VaultQueryCriteria(Vault.StateStatus.ALL)

val results = builder {
    val patientIndex = PersistentPatientState::patient.equal(12345)

    val customCriteria1 = VaultCustomQueryCriteria(patientIndex)

    val criteria = generalCriteria.and(customCriteria1)
    vaultService.queryBy<Patient.State>(criteria)
}