私の Java コードでは、ツリー内のノードのタイプが Node であるツリーを作成しました。ノードには、タイプNodeの名前、属性、および子があります。ツリーを保存するためにdb4oを使用しています。ツリーのルート ノードを格納するだけでそれを実行しています。しかし、db4o はオブジェクト ノードのすべての子ノードを格納していないことがわかりました。データベースからルートを取得してツリーをトラバースする場合、ツリーの 3 レベルまでしかトラバースできません。下位レベルの子ノードが失われているようです。ノードを失わないように、誰かが私を助けることができますか? ありがとうございました。
以下は私のコードです:
Node node1= new Node("root","this is the root",new ArrayList<Node>());
Node node2= new Node("zaid","123",new ArrayList<Node>());
Node node3= new Node("saad","999",new ArrayList<Node>());
Node node4= new Node("safia","555",new ArrayList<Node>());
Node node5= new Node("ahmad","000",new ArrayList<Node>());
node1.getChildren().add(node2);
node2.getChildren().add(node3);
node3.getChildren().add(node4);
node4.getChildren().add(node5);
ObjectContainer db= Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(),"db");
db.store(node1);
Node node= new Node("root",null,null);
List<Node> result= db.queryByExample(node);
node= result.get(0);
System.out.println(node.getName()
+","+node.getChildren().get(0).getName()
+","+node.getChildren().get(0).getChildren().get(0).getName()
+","+node.getChildren().get(0).getChildren().get(0).getChildren().get(0).getName());
コードの最後の行で、次のような例外が発生します。
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0