【发布时间】:2018-05-04 08:06:46
【问题描述】:
我有一个查询,我需要使用带有 Scala 的 Neo4jDriver 传递大量参数。我没有发现任何将它们作为地图传递的可能性,但我只设法将它们作为查询字符串的一部分传递。所以它看起来像这样:
val arr = Array("18731", "41.84000015258789", "-87.62999725341797")
val query1 = "MATCH ()-relations traversal WHERE mt.topic_id = gt.topic_id AND distance(point({ longitude: " + data(2) + ", latitude: " + data(1) + "}),point({ longitude: v.lon, latitude: v.lat })) < 4000 AND mt.member_id = " + data(0) + " RETURN distinct g.group_name " +
"as group_name, e.event_name as event_name, v.venue_name as venue_name"
然后我可以像neo4jSession.run(query1)一样运行这个查询
还有其他方法可以将数组中的这些值作为参数传递吗?
通过使用参数,我的意思是这样的:
val paramsMap = Map("lat" -> data(1).toDouble, "lon" -> data(2).toDouble, "id" -> data(0).toInt)
更新:
在 Scala 中,neo4jSession.run(query,paramsMap) 的映射应该是 Map[String,AnyRef] 类型,而我的映射是 [String, Double] 类型,因为我需要传递 double 和 int 值。所以我不知道在我的情况下如何使用这种方法。
【问题讨论】:
-
一种粗略的方法是使用像
Integer或Double这样的Java 对象,因为它们是AnyRef层次结构的一部分。