在 Cypher CREATE 子句中指定 属性 的原始类型
Specifying the primitive type of a property in a Cypher CREATE clause
与 Java API 的 possible 相反,似乎没有办法指定数字 属性 是否是 byte
、short
、int
或 long
:
CREATE (n:Test {value: 1}) RETURN n
似乎总是创建一个 long
属性。我试过 toInt()
,但显然在 "integer" 的数学意义上比在计算机数据类型意义上更能理解它。
有没有什么方法我忽略了实际强制类型?
我们已经定义了一个模型并希望使用 Cypher 语句插入测试数据,但是使用该数据的代码随后失败并显示 ClassCastException
,因为类型不匹配。
如果您 运行 您的密码查询使用嵌入式 API 那么
您可以在哈希图中提供具有正确键入值的参数。
对于远程用户来说,这并不重要,因为它来回经历 JSON 序列化,无论如何都会丢失类型信息。所以它只是 "numeric".
为什么要关心数字类型?
你也可以只使用 ((Number)n.getProperty("value")).xxxValue()
(xxx = int,long,byte)
与 Java API 的 possible 相反,似乎没有办法指定数字 属性 是否是 byte
、short
、int
或 long
:
CREATE (n:Test {value: 1}) RETURN n
似乎总是创建一个 long
属性。我试过 toInt()
,但显然在 "integer" 的数学意义上比在计算机数据类型意义上更能理解它。
有没有什么方法我忽略了实际强制类型?
我们已经定义了一个模型并希望使用 Cypher 语句插入测试数据,但是使用该数据的代码随后失败并显示 ClassCastException
,因为类型不匹配。
如果您 运行 您的密码查询使用嵌入式 API 那么 您可以在哈希图中提供具有正确键入值的参数。
对于远程用户来说,这并不重要,因为它来回经历 JSON 序列化,无论如何都会丢失类型信息。所以它只是 "numeric".
为什么要关心数字类型?
你也可以只使用 ((Number)n.getProperty("value")).xxxValue()
(xxx = int,long,byte)