我正在尝试创建一个动态查询,但我似乎无法找到任何有用的文档。我有以下交易。我想创建一个可能占用任意数量字段的查询,但似乎每当我使用变量创建查询时,它都需要它,如果我不提供它,它们会查询错误。
transaction QuantityChange {
o String partNumber
o String facilityId
o Double quantity
o invType invType
o appType application
o String refDocId optional
}
例如,如果我进行以下查询,我必须同时提供Part和Facility,否则查询不会返回。
query myTransactions{
description: "return all QuantityChange transactions made"
statement:
SELECT org.acme.trading.QuantityChange
WHERE ((partNumber == _$part) AND ( facilityId == _$facility))
}
有人能指点我一些资源来帮助我进行更多动态查询吗?
答案 0 :(得分:1)
有一些例子,人们创建了许多查询来覆盖他们希望查询的参数组合,但这是一种简单的方法,并且不能很好地扩展。
您可以使用Composer API构建动态查询,特别是buildQuery
和query
方法。这些可在Client API和Runtime API中使用,因此可以在Transaction logic中使用它们。
https://hyperledger.github.io/composer/latest/api/client-businessnetworkconnection#buildquery