2017-09-27 77 views
0

所以我有這樣的查詢:作曲家查詢匹配的參​​與者參考

query selectOrder{ 
    description: "Select an Order that matches a Client reference and an Order Number" 
    statement: 
     SELECT com.x.Order 
     WHERE (client == _$client AND orderNumber == _$orderNumber) 
} 

的順序是這樣的:

asset Order identified by uuid { 
    o String uuid 
    --> Client client 
    o String orderNumber 
    --> Item[] items 
} 

如何通過參考客戶端到查詢?

我想引用,被告知的toJSON它。 我試過了,它不會解析這個東西 - 解析查詢存在一個明顯的問題。

我無法找到的文檔的答案,所以如果有人已經這樣做了,否則我不知道如果我要保存客戶端ID而不是參考客戶,失去的完整性。

編輯:爲了完整性下面的第一個答案。

我試圖將項目添加到項目的數組。 我的項目目標定義是這樣的:

asset Item identified by uuid { 
    o String uuid 
    o DateTime timestamp 
    o String orderNumber 
    --> Client client 
    o String[] message 
} 

當交易被調用傳入的單個對象是項目。 我將Item.client設置爲查詢中的_ $ client值。與

我應預先掛起它的「資源」? 我在問,因爲我認爲那是在參考字符串中 - 至少它是在操場上的視圖。

EDIT2: 所以我手動構建以下變量:

var RSRC = 'resource:com.x.Client#XYZ123' 

集,作爲在此查詢的客戶端

return query('selectOrder', {agency : RSRC, orderNumber : orderNumber}); 

但我仍然得到這樣的:

Error: unknown operator "0" - should be one of $eq, $lte, $lt, $gt, $gte, $exists, $ne, $in, $nin, $size, $mod, $regex, $elemMatch, $type or $all

下一步是什麼? 將「resource ...」字符串嵌入到引號中也不起作用。

回答

1

您的查詢看起來不錯,但您需要傳遞格式爲: resource:type.Name#instance的字符串作爲關係。

E.g. resource:org.acme.Car#123ABC

+0

也許我應該更詳細。我將編輯原始文件以顯示_ $客戶端來自哪裏。 –