2012-10-05 50 views

回答

1

您可以使用多種選項。首先,您需要有一個唯一標識您的文檔的標準。下面我會展示一些,希望你的案例落在他們中的一個,或者他們會激勵你尋求適當的解決方案。以下使用僞代碼,請參閱OpenCMIS dev guide以使用Java客戶端API。

BY ID

一旦創建通過CMIS文檔,你得到它的唯一的ID,你可以在你的應用程序供以後檢索存儲。

Map<String, Object> templateProperties = createDocumentProperties(); 
Folder folder = getTemplatesFolder(); 
ObjectId templateId = createTemplateIn(folder); 
storeTemplateId(templateId.getId(), templateProperties); // persist the ID 
... 
// later on 
... 
String id = getTemplateId(); // retrieve the ID 
Session session = openCMISSession(); 
Document template = (Document)session.getObject(id); 

按路徑

前面的例子類似,你將不得不注意到您存儲文檔,而不是它的ID,或者有辦法通過手工構建的路徑。

String path = getTemplatePath(); // either recover it from DB or construct a path 
Document template = (Document)session.getObjectByPath(path); 

地產價值

比方說,你可以在一個模板文件,可以讓您輕鬆事後檢索它使用特定的元數據字段(例如,您創建了您的使用情況下,一些特定Alfresco metadata model)。

String meta = TemplateProperties.TEMPLATE_ID; // e.g. my:templateId 
String type = TemplateProperties.TEMPLATE_TYPE; // e.g. my:template 
String templateMeta = "TEMPLATE1"; 
Map<String, Object> templateProperties = createDocumentProperties(); 
templateProperties.put(meta, templateMeta); 
templateProperties.put(PropertyIds.OBJECT_TYPE_ID, type); 
createTemplate(templateProperties); 
... 
// later on 
... 
String type = TemplateProperties.TEMPLATE_TYPE; // e.g. my:template 
String meta = TemplateProperties.TEMPLATE_ID; 
String tplId = "TEMPLATE1"; 
String query = String.format("SELECT * FROM % WHERE % = '%'", type, meta, tplId); 
ItemIterable<QueryResult> i = session.query(query, false); 
QueryResult qr = i.iterator().next(); // let's assume we have one single match 
String templateId = qr.getPropertyByQueryName("cmis:objectId").getFirstValue() 
Document template = (Document)session.getObject(templateId); 

按查詢

以前的做法是不是真的綁按屬性名稱進行搜索,並可以很容易地擴展到使用任何類型的查詢識別你的模板。查看Alfresco的CMIS query language實現細節頁面,瞭解更多查詢存儲庫的方法。

+0

感謝兄弟爲您解釋,這就是我想要做的..現在,我有文件,你會知道我應該使用什麼會議對象的方法,所以我可以檢索文件的格式爲字符串模板可以理解? –

+0

你的意思是[StringTemplate](http://www.stringtemplate.org/)?這可能值得一個單獨的問題,因爲這是更多的東西的主題。 – skuro

+0

好吧,我會打開另一個問題,並感謝你的迴應,歡呼! –

相關問題