2016-02-29 101 views
0
版本

我試圖更新使用XQuery在XDB一些財產的價值票據XQuery更新,這裏是我的交易:

let $source := doc('/historicalresource')/HistoricalResourceData[id/@UUID = '0361513e-30fa-45e4-a73a-d05870b8a284'] 

let $res := $source/ResourceProperty[@PropertyName="cpu|limit"]/@PropertyValue 

let $change := '21572' 

return replace value of node $res with $change 

運行此查詢後,我收到這樣的錯誤:

com.xhive.error.XhiveException: VERSION_ACCESS_DENIED: This document is versioned and can only be changed through a versioning operation

確實在我的情況下historicalresource是一個文件夾,它可能包含多個文檔,並且它們都有一個版本,例如:v1.1,v1.2等。

如何更新la使用xquery的st版本? 我應該如何修改我的查詢以便能夠更新所需的值?

回答

0

最後,我已經找到了答案,我的問題,因此這裏將其添加:

沒有辦法更新使用XQuery XDB文件,因爲它是基於版本的系統和XQuery不能創建一個新的版本,但它可以通過一些編碼語言(:JAVA爲例):手動或自動完成

  1. 手動 - 通過在XDB編輯現有的版本,在這種情況下,新版本將保存任何改變的現有版本後會自動創建文件。
  2. 自動 - 通過檢出文件,進行更改並將更改作爲新版本提交。
0

版本控制文件(上XhiveLibraryChildIf.makeVersionable()叫),這確實是這樣的:你必須先簽出文檔,然後運行對檢出的副本更新查詢,終於在檢查新版本。但是,對於非版本化的文檔,您可以直接應用更新查詢。