Запрос с использованием отношения в Hyperledger Composer - PullRequest
0 голосов
/ 21 мая 2018

Я сделал запрос в Hyperledger Composer, где в запросе пытается найти все счета заемщика.Заемщик является участником актива счета:

asset Invoice identified by invoiceId {
  o String invoiceId
  o String invoiceRef optional
  o DateTime dateCreated
  o String type
  o DateTime invoiceOrPurchaseDate optional
  o Double amount
  o DateTime invoiceDueDate optional
  o String paymentStatus optional
  o Boolean overdue
  o Double outstandingBalance
  --> Participant borrower
  --> Participant lender
}

Мне нужен запрос, который вернет все счета заемщика, и я сделал это в Hyperledger composer, выполнив следующую кодировку:

query QInvoiceByBorrower {
    description: "Select invoice by borrower"
    statement:
        SELECT org.n.blockchaindemo.Invoice
            WHERE (_$borrower == borrower)
}

Но когда я пытаюсь вызвать запрос через REST API, я получаю [] пустой результат, как показано ниже:

http://10.10.4.244:3000/api/queries/QInvoiceByBorrower?borrower=resource:org.n.blockchaindemo.User#1381991

Могу ли я узнать, как создать запрос, который будет искать с использованием иностранного отношения в Hyperledger Composer?

1 Ответ

0 голосов
/ 21 мая 2018

В определении Счета-фактуры вам необходимо обратиться к конкретному типу участника, т.е. Пользователь , а не к типу системы Участник.Таким образом, последняя часть вашего счета будет:

  o Double outstandingBalance
  --> User borrower
  --> User lender
 }

С этим изменением ваш запрос должен работать.Полезным методом диагностики является создание дублированного запроса без предложения , где , а затем проверка возвращаемых данных, чтобы помочь понять параметры, используемые для запроса.

(Используя Участника, я думаю, что вашресурс будет включать в себя первый тип участника в вашей модели в тот момент, когда тип ресурса был впервые использован - это звучит так, как будто это может привести к неожиданным действиям, поэтому указание фактического типа участника имеет смысл.)

...