在我的 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