在 neo4j-ogm 中,如何通过对象属性查询从图中检索一个对象?
In neo4j-ogm how do I retrieve one single object from the graph by an object attribute query?
我尝试使用
查询对象
val query = new java.lang.String("MATCH (n:MicroConfig) WHERE n.nodeId = {nodeId} RETURN n LIMIT 1")
val parameters = new java.util.HashMap[String, String]()
parameters.put("nodeId", nodeId)
val all = session.queryForObject(new MicroConfig().getClass, query, parameters)
但是它 returns 是一个 GraphModel,而不是我想要的 MicroConfig class。
检查假设:
首先,MicroConfig
是由 OGM 管理的 class(即它是否出现在提供给 SessionFactory
构造函数的包中)?
其次,您的查询是否要检查 ID(n) = {nodeId}
?这将检查 Neo4j 内部 ID 是否与提供的 nodeId
参数匹配。否则这必须是 class MicroConfig
.
上的实际 属性
可能的解决方案:
使用当前的 API,您可以通过两种方式执行此操作:
仅使用 Filter
和 return Collection
中的一项。
你可以这样做:
val microConfig = session.loadAll(classOf[MicroConfig], new Filter("nodeId", nodeId)).lift(0)
仔细检查进入 session.queryForObject
的 Scala class
。保留您现有的查询,但使用 classOf[MicroConfig]
而不是 new MicroConfig().getClass
.
我尝试使用
查询对象val query = new java.lang.String("MATCH (n:MicroConfig) WHERE n.nodeId = {nodeId} RETURN n LIMIT 1")
val parameters = new java.util.HashMap[String, String]()
parameters.put("nodeId", nodeId)
val all = session.queryForObject(new MicroConfig().getClass, query, parameters)
但是它 returns 是一个 GraphModel,而不是我想要的 MicroConfig class。
检查假设:
首先,MicroConfig
是由 OGM 管理的 class(即它是否出现在提供给 SessionFactory
构造函数的包中)?
其次,您的查询是否要检查 ID(n) = {nodeId}
?这将检查 Neo4j 内部 ID 是否与提供的 nodeId
参数匹配。否则这必须是 class MicroConfig
.
可能的解决方案:
使用当前的 API,您可以通过两种方式执行此操作:
仅使用
Filter
和 returnCollection
中的一项。 你可以这样做:val microConfig = session.loadAll(classOf[MicroConfig], new Filter("nodeId", nodeId)).lift(0)
仔细检查进入
session.queryForObject
的 Scalaclass
。保留您现有的查询,但使用classOf[MicroConfig]
而不是new MicroConfig().getClass
.