java - 如何从 Java 中的 ExecutionResult 中提取集合?

标签 java collections neo4j cypher

给出以下查询:

CREATE (versionNode:Version {previousVersions: [4,3,2,1]}) 
RETURN versionNode.previousVersions AS versions

我怎样才能得到Collection<Long>来自ExecutionResult ?据我所知,Node#getProperty()方法只能返回原始类型,所以我不能使用它。可能吗?

最佳答案

我找到了解决方案。这段代码让我意识到了这一点:

String cypher = "CREATE (versionNode:Version {previousVersions: [4,3,2,1]}) " +
                "RETURN versionNode.previousVersions AS versions";
ExecutionResult result = new ExecutionEngine(db).execute(cypher);
System.out.println(result.iterator().next().get("versions").getClass());

这输出了奇怪的符号:

class [J

根据 Java 文档 Class#getName()这意味着返回的对象类型是一个原始long数组。

现在我可以这样做并将我的号码返回到集合中:

Collection<Long> versionsCollection = new ArrayList<>();
long[] versions = (long[]) result.iterator().next().get("versions");
for (long v : versions) {
  versionsCollection.add(v);
}

关于java - 如何从 Java 中的 ExecutionResult 中提取集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23911911/

相关文章:

java - ?ColorPrimary 在 android 5.0 以下不起作用

java - 实现和集合

go - neo4j-go-driver强制中止长时间运行的查询

java - 使用 JAXB 从套接字解码 xml 后客户端被阻止

java - 如何找到给定类名的包名?

java - 正则表达式拆分字符串(在 Java 中)以便保留空格?

Java:如何保持三个对象之间的关系

c# - 连接两个集合,从第二个集合中获取值(左外连接)

mysql - 更改 Neo4j 的嵌入 id 字段

python - 图 - Python - 存储由图组成的图数据库 - 图数据库理论