Java 如何固定地确保neo4j将为属性返回一个长值
我用neo4j 2.3版本和事务端点上的直接调用做了一些实验 并创建具有long属性的节点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
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