如何从Corda中的自定义表中获取数据

时间:2017-09-09 19:01:35

标签: kotlin corda

我们正在尝试使用状态为查询条件的保险库查询从我们的自定义表中获取数据。但是我们得到一个模型类的状态,它包含旧值而不是数据库中的新值。有人可以指出从自定义表中获取数据并将其映射到corda中的模型类的示例。

1 个答案:

答案 0 :(得分:0)

通过覆盖QueryableState类中的方法 generateMappedObject ,可以在状态类中提供从架构到状态属性的映射。确保您的状态实现了 QueryableState 类。

@Override public PersistentState generateMappedObject(MappedSchema schema) {
        if (schema instanceof IOUSchemaV1) {
            return new IOUSchemaV1.PersistentIOU(
                    this.lender.getName().toString(),
                    this.borrower.getName().toString(),
                    this.value,
                    this.linearId.getId());
        } else {
            throw new IllegalArgumentException("Unrecognised schema $schema");
        }
    }

您可以使用

之类的保管库查询来查询数据库。
QueryCriteria queryCriteria = new QueryCriteria.VaultQueryCriteria().withStatus(Vault.StateStatus.UNCONSUMED);

List<StateAndRef<IOUState>> iouStates = getServiceHub().getVaultService()
                .queryBy(IOUState, queryCriteria).getStates();