1

参照を追加しようとしていますが、 node.getReferences() を呼び出しても表示されません。

簡単な例を作成しようとしました->ルートの下に2つのノードを作成し、一方を他方から参照します。それはうまくいきます。

私の作業コードではそうではありません。バージョン管理と関係があると思いますが、何が起こっているのかを説明しているドキュメントを見つけることができません。構造を説明しましょう

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");

チェックアウトと保存を削除しようとしましたが、すべて役に立ちませんでした。

コメントや推奨される読書は大歓迎です。

テッド。

4

1 に答える 1

3

リストしたコードは、期待どおりに機能するはずです。参照の処理方法にバグがある可能性のあるリモーティング レイヤー (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
于 2011-09-22T09:48:52.500 に答える