2013-07-08 65 views
1

下正常工作:MarkLogic Java API - 帶有JAXB的QueryManager?

XMLDocumentManager docMgr = client.newXMLDocumentManager(); 

JAXBContext context = JAXBContext.newInstance(Document.class); 
JAXBHandle jaxbHandle = new JAXBHandle(context); 
docMgr.read(
    "/masters/1337-12/t/1439-1074_2013_2_toc.xml", 
    jaxbHandle); 

Assert.assertNotNull(jaxbHandle); 

Document document = (Document) jaxbHandle.get(); 

但如果我不知道文檔的URI我可以做我必須做一個搜索類似以下內容:

StructuredQueryBuilder qb = new StructuredQueryBuilder(
    "OPTIONS_NAME"); 
StructuredQueryDefinition querydef = qb.valueConstraint("tocId", 
    tocId); 
// contains RAW data - 
StringHandle resultsHandle = queryMgr.search(querydef, new StringHandle()); 

我怎樣才能改變這個結果與JAXB?

+0

好..因爲JAVA API很慢(現在測試過)我切換到XCC .. – user1731299

+0

我很想知道如何更好地理解Java API的性能不符合您的期望。你能提供更多細節嗎? –

回答

2

對於搜索結果的POJO界面,請使用內置的SearchHandle類。

當從Java對象向XML返回樹數據結構(並因此對自己的內容有用)時,JAXB是最容易使用的。

關於性能,XCC比直接在文檔上操作的Java API更快。這就是MLCP使用XCC攝取的原因。對於與數據庫交互的大多數應用程序(特別是那些需要REST API公開的增值服務的應用程序),性能差異並不重要。