Jackrabbit-node.getReferences()不返回任何内容

Jackrabbit-node.getReferences()不返回任何内容,reference,jackrabbit,Reference,Jackrabbit,我试图添加引用,但调用node.getReferences()时,我看不到它 我尝试过创建一个简单的示例->在根目录下创建两个节点,并从另一个节点引用一个节点。那很好 在我的工作代码中没有。我猜这与版本控制有关,但我找不到任何文档解释发生了什么。让我解释一下结构 Root |__project node | |__ node 1 | |__ node 2 所有节点都具有mix:versionable和mix:referenceble

我试图添加引用,但调用node.getReferences()时,我看不到它

我尝试过创建一个简单的示例->在根目录下创建两个节点,并从另一个节点引用一个节点。那很好

在我的工作代码中没有。我猜这与版本控制有关,但我找不到任何文档解释发生了什么。让我解释一下结构

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新手!)!!。此后,我放弃了引用,使用了一个单独的具有属性的节点,这最终成为了一个更合适的解决方案。