Java 如何固定地确保neo4j将为属性返回一个长值

Java 如何固定地确保neo4j将为属性返回一个长值,java,neo4j,cypher,Java,Neo4j,Cypher,我用neo4j 2.3版本和事务端点上的直接调用做了一些实验 并创建具有long属性的节点 curl -X POST -H "Content-Type: application/json" -d '{ "statements" : [ { "statement" : "MERGE (c:`foo` {id:{_queryId}}) ON CREATE SET c.`created`={created} RETURN c", "parameters" : { "created" : 111

我用neo4j 2.3版本和事务端点上的直接调用做了一些实验

并创建具有long属性的节点

curl -X POST -H "Content-Type: application/json" -d '{
"statements" : [ {
"statement" : "MERGE (c:`foo` {id:{_queryId}}) ON CREATE SET  c.`created`={created} RETURN c",
"parameters" : {
  "created" : 1111111111111111111
}}]
}'
"http://localhost:7474/db/data/transaction/commit"
在客户端(Java、Jersey、REST客户端)读取此数据时 我根据值接收long或int 看起来neo4j在返回结果时正在压缩数据 我用纯粹的邮递员电话证明了这一点——所以这显然是neo4j服务器端的问题——如下所示

{
 "statements" : [ {
 "statement" : "MATCH c RETURN TYPE(c.created)"
 } ]
}
我也有

作为一名消费者,有没有一种方法可以让我一直保持长寿


这实际上是由于REST客户端造成的。为了保持一致,最好先使用
java.lang.Number
,然后对其执行
longValue()

但是,您在帖子中显示的例外情况是,您试图对数字使用
TYPE
函数。需要一个关系并返回关系类型

  "code": "Neo.DatabaseError.Statement.ExecutionFailure",
  "message": "java.lang.Long cannot be cast to org.neo4j.graphdb.Relationship",
  "stackTrace": "java.lang.ClassCastException: java.lang.Long cannot be cast to org.neo4j.graphdb.Relationship\
  "code": "Neo.DatabaseError.Statement.ExecutionFailure",
  "message": "java.lang.Integer cannot be cast to org.neo4j.graphdb.Relationship",
  "stackTrace": "java.lang.ClassCastException: java.lang.Integer cannot be cast to org.neo4j.graphdb.Relationship