查询语言:参考

时间:2018-03-20 23:20:59

标签: hyperledger-composer

在本教程之后,有查询

query selectCommoditiesByOwner {
  description: "Select all commodities based on their owner"
  statement:
      SELECT org.acme.biznet.Commodity
          WHERE (owner == _$owner)
}

但是没有一个例子可以解释如何申请

对于参数owner,我尝试使用节点变量owner

  • owner.toUri()
  • owner.getFullyQualifiedIdentifier()
  • "resource:" + owner.getFullyQualifiedIdentifier()

但没有任何作用

有人有一个有效的例子吗?

1 个答案:

答案 0 :(得分:1)

如何“请求”的示例显示在查询教程的https://hyperledger.github.io/composer/tutorials/queries

的REST API部分中

如果您的意思是:使用API​​在事务处理器函数中请求它 - 在同一个教程中有一个示例,即调用查询函数,例如。

/**
 * Remove all high volume commodities
 * @param {org.acme.biznet.RemoveHighQuantityCommodities} remove - the remove to be processed
 * @transaction
 */

function removeHighQuantityCommodities(remove) {

return getAssetRegistry('org.acme.biznet.Commodity')
    .then(function (assetRegistry) {
        return query('selectCommoditiesWithHighQuantity')
            .then(function (results) {
           // process results objects etc

所以使用你的查询 - 你可以这样做:

var tx_owner = tx.owner; // passed into the Transaction Processor for example
return query('selectCommoditiesByOwner', {
   "owner": tx_owner    // eg "resource:org.acme.trading.Trader#trader1"
})
.then(function (results) {
   // do something
希望这会有所帮助。在此处参见进一步的参考 - > https://hyperledger.github.io/composer//reference/query-language