2012-07-17 46 views
0

我正在嘗試在2個不同節點下搜索特定名稱。這工作Jackrabbit是否支持XPath聯合(|)運算符?

/jcr:root/db067409/libraries/bd0b868d/_x0030_//*[@name="FIRST"] 

但是當我嘗試或將其與像這樣的第二點...

/jcr:root/db067409/libraries/bd0b868d/_x0030_//*[@name="FIRST"]|/jcr:root/db067409/libraries/_x0033_78d57e4/_x0031_//*[@name="FIRST"] 

我不再獲得任何搜索結果。請有人指出我做錯了什麼。

我真正想做的就是沿着這些路線行事;如果我有/ a/b/ID1/VERSION1和/ a/b/ID2/VERSION2我希望xpath類似於/ a/b /(ID1/VERSION1或ID2/VERSION2)// * [@ name = 「某個名字」]。

+0

僅供參考,實際上這是* union *,而不是或(其中的xpath也有)。 – FatalError 2012-07-17 12:49:22

+0

我會說是的,是的,這是一個聯盟。儘管如果它更容易返回也可以使用的第一場比賽。 – TedTrippin 2012-07-17 13:11:19

+0

我發現了幾個帖子,都非常陳舊,說不僅jackrabbit不支持聯盟,但它也只是忽略是不是拋出異常:(所以我想問題是,最新的Jackrabbit甚至支持聯盟? – TedTrippin 2012-07-17 13:24:46

回答

1

答案是否定的。不幸的是,它並沒有像你期望的那樣拋出UnsupportedOperationException。 Jira中有一個項目,但我猜他們忽略了它,因爲Xpath現在已被棄用。

如果您確實需要聯合,請使用JCR_SQL2。

0

編輯

This thread表明工會樣功能可在兔崽子2.0,而不是更早。

[加入]是不可能的JCR XPath或JCR-SQL,但在JCR 2.0(JCR-SQL2)的新的查詢模型。 自CQ 5.3/CRX 2.0/Jackrabbit 2.0開始支持。請注意, 這些連接並不是非常優化的。

的確,XPath is deprecated in JCR 2.0

JCR 1.0定義了一種不同於JCR-SQL2的SQL方言,以及一種XPath方言。對這些語言的支持已被棄用。

+0

我認爲你誤解了這個線程,它說XPath不可能實現,但是可以在JCR 2.0中使用JCR-SQL2。 – TedTrippin 2012-07-17 16:21:56

+0

該死的投票了,而不是下來,現在不能編輯:( – TedTrippin 2012-07-17 16:44:04

+0

而且我知道XPath已被棄用,真的。高級時刻。 – 2012-07-17 16:52:56