使用Neo4j 3.x BOLT驱动程序时如何确定记录值的类型?

时间:2016-05-12 18:26:48

标签: neo4j

如果我正在查看从StatementResult中提取的记录,那么确定特定值的类型的正确方法是什么?我知道Neo会尝试为我强制类型但是如果我想知道,例如,如果某个节点是Node?有一个你可以调用的typeOf()方法,但是我没有看到我将Value传递给该方法的位置。例如,在以下代码段中,如何确定密钥所持有的值的类型?

StatementResult statementResult = session.run(cypher,paramMap);
Record record = single();
record.get('key').type().isTypeOf()

2 个答案:

答案 0 :(得分:1)

怎么样:

this.router.navigate( [
  'CurrentPage', { id: 'companyId', param1: 'value1'
}]);

有关详细信息,请参阅https://github.com/neo4j/neo4j-java-driver/blob/1.0/driver/src/main/java/org/neo4j/driver/v1/types/TypeSystem.java

答案 1 :(得分:0)

我认为Stefan的答案是完全有效的,但是它会将你的代码绑定到协议的v1。

我会使用内部命名空间,以使其在更多版本中工作,例如:

import static org.neo4j.driver.internal.types.InternalTypeSystem.TYPE_SYSTEM;

if ( record.get( "key" ).hasType( TYPE_SYSTEM.NODE() ) {
  // it is a node
}

从我在驱动程序测试中看到的,它是相同的用法:

https://github.com/neo4j/neo4j-java-driver/blob/1.1/driver/src/test/java/org/neo4j/driver/v1/types/TypeSystemTest.java#L210