我想從露天存儲庫中檢索所有文檔內容。那麼任何人都可以幫助我,我如何使用CMIS遍歷存儲庫。在遍歷的同時,我也想根據它的類型來分離文檔。如何從使用Open CMIS分離文檔類型的露天存儲庫中檢索所有文檔內容
在這一刻,我可以通過指定路徑來獲取任何一個文檔。但現在我的要求是遍歷整個存儲庫並獲取所有文檔。
所以任何人都可以幫助我。 同時建議我說:「遍歷所有文件夾的,後來由特定類型分開」將是很好的辦法或「使用CMIS查詢的文件搜索特定類型的」將是不錯的辦法。
在此先感謝。
我想從露天存儲庫中檢索所有文檔內容。那麼任何人都可以幫助我,我如何使用CMIS遍歷存儲庫。在遍歷的同時,我也想根據它的類型來分離文檔。如何從使用Open CMIS分離文檔類型的露天存儲庫中檢索所有文檔內容
在這一刻,我可以通過指定路徑來獲取任何一個文檔。但現在我的要求是遍歷整個存儲庫並獲取所有文檔。
所以任何人都可以幫助我。 同時建議我說:「遍歷所有文件夾的,後來由特定類型分開」將是很好的辦法或「使用CMIS查詢的文件搜索特定類型的」將是不錯的辦法。
在此先感謝。
Yagami的答案是一個好的開始,但有幾件事要補充。
首先,除非實際需要存儲庫中的每個屬性,否則不要執行「select *」操作。這是一個潛在的性能問題。只問你需要什麼。
其次,您的一條評論是關於按類型分割結果的。在CMIS中,類型就像一個SQL表。所以你的情況,你會使用您的三個自定義類型的做三種不同的查詢,爲不同類型的FROM子句:
select * from test:mainContract;
select * from test:subContract;
select * from test:royaltyStatement;
最後,除非你剛剛的文件少數在你的倉庫,你是幾乎肯定會想要使用分頁結果集。否則,您將只返回服務器配置返回的最大結果數。這可能不足以獲得整個集合。
對於表示尋呼結果集的示例,參見Apache CMIS: Paging query result
要執行這樣的(讓所有的文檔內容)的動作,你需要按照此步驟
第1步:創建一個保護類
我指的是服務器級是什麼,它將舉行兩次信息(對我來說是最有價值的信息),他們兩個最是字符改變
1 - 文檔ID
2 - 該文檔名稱
第2步:獲取所有的文件
要得到所有我們必須使用一個查詢的文檔
String query;
query = "SELECT * FROM cmis:document ";
您將得到所有的文件,你有你的存儲庫。
您可以添加一些條件,以使您的研究更喜歡在這個例子更容易:
query = "SELECT * FROM cmis:document WHERE IN_FOLDER('" + folderId + "')";
在這個例子中,你會得到一個特定文件夾中的文件。
ItemIterable<QueryResult> resultList = session.query(query, false);
最後
for (QueryResult qr : resultList) {
String idDocument = qr.getPropertyByQueryName("cmis:objectId").getFirstValue().toString();
String name = qr.getPropertyByQueryName("cmis:name").getFirstValue().toString();
Document doc = (Document) session.getObject(idDocument);// this is how you can get document with add that's mean no need of path
}
您可以在CMIS query閱讀更多有關查詢。
第3步:保存每次在保護類的信息
我想很明顯,你必須保存每一次你在保護類的occurence使用循環(步驟2)時間。
我希望對你有幫助。
我怎樣才能根據內容類型的內容分開?意味着我在存儲庫中共有4種不同類型的內容。我想單獨購買。所以,如果可能的話,你可以修改答案。 –
請給我這個內容類型 –
測試:mainContract,測試:subContract和測試:版稅說明這些是內容類型..........和我想分開所有內容爲每個內容類型 –
非常感謝您的回答。這說得通。 –
如果我正在查詢select * from test:mainContract;它只給出1000個文件。但是在版本庫中還有更多1000個文檔。那麼我怎樣才能得到所有的文件....你可以請回復? –
@Juff Potts你能幫我從露天存儲庫中獲取Aspect屬性嗎?我爲此創建了一個問題。請儘可能幫助我... –