gpt4 book ai didi

java - neo4j: java 错误: 找不到 NodeImpl#0 的属性

转载 作者:行者123 更新时间:2023-11-29 07:59:24 24 4
gpt4 key购买 nike

我正在用 java 编写一个 neo4j 演示代码。以下是我创建节点、为它们编制索引并打印它们的属性的代码的一部分。

String NODE_KEY = "UserID";
String NODE_PROPERTIES = "UserProperties";

createAndIndexUser(String userID){
Node node = graphDB.createNode();
node.setProperty(NODE_KEY, nodeID);
neo4jGraph.nodeIndex.add(node, NODE_KEY, userID);
return node;
}

for(int i=0 ; i<100 ; i++){
String userID = "userID_"+i;
Node node = createAndIndexUser(userID);
node.setProperty(NODE_PROPERTIES, strNodeProperties);
}

Iterable<Node> allNodes = GlobalGraphOperations.at(graphDB).getAllNodes();

for(Node n: allNodes){
System.out.println("n.getPropertyKeys: "+n.getPropertyKeys());
System.out.println(n.getProperty(NODE_KEY));
}

当我执行这段代码时,第一个 println 的输出是:

n.getPropertyKeys: []

而第二个 println 出现错误:

Exception in thread "main" org.neo4j.graphdb.NotFoundException: 'UserID' property not found for NodeImpl#0.

我哪里做错了什么?为什么它不在 n.getProperty(NODE_KEY) 上打印所有属性键?

有没有其他方法可以获取所有节点并打印它们的属性?

最佳答案

除了您在 createAndIndexUser 中添加的节点之外,您的图表中还有哪些其他节点? ?请记住,neo4j 图总是有一个 ID 为 0 的虚拟节点。尝试将循环修改为类似以下内容:

for(Node n: allNodes){
System.out.println("n.getPropertyKeys: "+n.getPropertyKeys());
if(n.hasProperty(NODE_KEY))
System.out.println(n.getProperty(NODE_KEY));
else
System.out.println("Node " + n.getId() + " does not contain property " + NODE_KEY);
}

事实上,如果你真的想确定,你可以保留上面创建的节点列表,并根据你从 getAllNodes() 获得的节点进行检查.

关于java - neo4j: java 错误: 找不到 NodeImpl#0 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15405644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com