给出以下查询:
CREATE (versionNode:Version {previousVersions: [4,3,2,1]})
RETURN versionNode.previousVersions AS versions
如何从Collection<Long>
获得ExecutionResult
? AFAIK,Node#getProperty()
方法只能返回原始类型,所以我不能使用它。有可能吗?
答案 0 :(得分:1)
我找到了解决方案。这段代码让我意识到了:
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
根据Class#getName()
的Java文档,它表示返回的对象类型是原始long
数组。
所以现在我可以这样做并将我的号码返回到一个集合中:
Collection<Long> versionsCollection = new ArrayList<>();
long[] versions = (long[]) result.iterator().next().get("versions");
for (long v : versions) {
versionsCollection.add(v);
}