2011-03-04 65 views
0
idb:photo 
    idb:uploadName jcr:primaryType="idbt:metaData" idb:value="4.jpg" 
    idb:size jcr:primaryType="idbt:metaData" idb:value="276757" 
    idb:title jcr:primaryType="idbt:metaData" idb:value="Title: 4.jpg" 
idb:photo> 

首先我不能看到我的代碼示例! - >點擊{}並提交我的代碼!Jackrabbit Sql2-Query - > DescendantNodeJoinCondition

我想獲得一個照片節點的信息,其中,例如標題是 Title: 4.jpg 我有以下查詢:

Query query = queryManager.createQuery("select * from [idbt:photo] as p inner join [idbt:metaData] as c on isdescendantnode(p, c) where c.[idb:value] = 'Title: 4.jpg'", Query.JCR_SQL2); 

我的結果集是空的。它應該填充我的匹配節點!

有什麼不對?

問候

回答

0

我不明白節點是如何存儲的。它是元數據節點/照片節點還是照片節點/元數據節點?

在查詢中你有isdescendantnode(後代,父母),不是嗎?它是一個孩子節點嗎?你有沒有試過ischildnode?看看http://www.h2database.com/jcr/grammar.html#join

你使用的是什麼版本的JackRabbit?你怎麼知道結果是空的?如果由於某種原因,您正在使用query.execute()。getRows.getSize()嘗試獲取結果總數,請看https://issues.apache.org/jira/browse/JCR-2765

+0

它存儲就像您在上面看到的那樣!節點類型是idbt:metadata。我有以下查詢工作:查詢查詢= queryManager.createQuery(「選擇*從[idbt:照片]作爲右外連接[nt:base]作爲c上p.id = c.parentid其中c。[idb :value] like'%4.jpg%'「,Query.JCR_SQL2);和query query = queryManager.createQuery(「select * from [idbt:photo] as p right outer join [nt:base] as c on isdescendantnode(p,c)where c。[idb:value] like'%4.jpg %'「,Query.JCR_SQL2);我如何使synatax突出顯示? – alex 2011-03-07 08:03:32