Jackrabbit-node.getReferences()不返回任何内容
我试图添加引用,但调用node.getReferences()时,我看不到它 我尝试过创建一个简单的示例->在根目录下创建两个节点,并从另一个节点引用一个节点。那很好 在我的工作代码中没有。我猜这与版本控制有关,但我找不到任何文档解释发生了什么。让我解释一下结构Jackrabbit-node.getReferences()不返回任何内容,reference,jackrabbit,Reference,Jackrabbit,我试图添加引用,但调用node.getReferences()时,我看不到它 我尝试过创建一个简单的示例->在根目录下创建两个节点,并从另一个节点引用一个节点。那很好 在我的工作代码中没有。我猜这与版本控制有关,但我找不到任何文档解释发生了什么。让我解释一下结构 Root |__project node | |__ node 1 | |__ node 2 所有节点都具有mix:versionable和mix:referenceble
Root
|__project node
|
|__ node 1
|
|__ node 2
所有节点都具有mix:versionable和mix:referenceble
代码位
node1.checkout();
node2.checkout();
node2.setProperty("ref to node1", node1);
session.save();
if (!node1.getReferences().hasNext())
System.out.println("No references");
我尝试过删除结帐和保存,但都没有用
任何意见或建议阅读,不胜感激
Ted。您列出的代码应该能按预期工作。您使用的远程处理层(RMI、WebDAV等)在处理引用的方式上是否存在缺陷 例如,您可以使用本地Jackrabbit实例尝试以下代码:
Node root = session.getRootNode().addNode("test");
Node node1 = root.addNode("node1");
node1.addMixin("mix:referenceable");
Node node2 = root.addNode("node2");
node2.setProperty("reference", node1);
session.save();
System.out.println("References to " + node1.getPath() + ":");
for (Property reference : JcrUtils.getReferences(node1)) {
System.out.println("- " + reference.getPath());
}
它打印出以下内容:
References to /test/node1:
- /test/node2/reference
事实上,我正在用一个本地的Jackrabbit实例进行测试。我想知道我是否忘记添加“mix:referenceable”(作为JCR新手!)!!。此后,我放弃了引用,使用了一个单独的具有属性的节点,这最终成为了一个更合适的解决方案。