Я использую Jackrabbit и пытаюсь запросить существующий узел с UUID.Мой код показан ниже.Проблема заключается в том, что UUID для referenceNode имеет вид «90be246a-a17c-445e-a5ad-81b064de0bee», и кажется, что в движке XPATH, используемом в Jackrabbit (Lucene), возникают проблемы с дефисами.
ЕслиЯ запускаю query2, все в порядке, и referenceNode печатается.Если я запускаю query1 (с UUID) внутри Eclipse, ничего не возвращается.ОДНАКО, если я запускаю query1 внутри Jackrabbit Viewer, запрос выполняется нормально.
Кажется, мне нужно экранировать дефисы в моем queryString, но я попытался добавить двойную обратную косую черту, и я получил тот же результат.Как правильно выполнять запросы к UUID?
// Set up Nodes
rootNode = session.getRootNode();
Node referenceNode = rootNode.addNode("referenceNode");
Node referencingNode = rootNode.addNode("referencingNode");
referenceNode.addMixin("mix:referenceable");
referencingNode.setProperty("pointer", new ReferenceValue(referenceNode));
// Query
String uuid = referenceNode.getUUID();
QueryManager qm = ws.getQueryManager();
String queryString1 = "//*[@jcr:uuid='"+uuid+"']";
String queryString2 = "//referenceNode";
Query q = qm.createQuery(queryString1, Query.XPATH);
QueryResult result = q.execute();
NodeIterator it = result.getNodes();
while(it.hasNext()) {
Node node = it.nextNode();
System.out.println( node.getName());
}