Спасибо. Я добавил простой session.save () после установки и перед запросом, и это сработало.
ользую 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());
}