在 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,您可以通过两种方式执行此操作:

  1. 仅使用 Filter 和 return Collection 中的一项。 你可以这样做:

    val microConfig = session.loadAll(classOf[MicroConfig], new Filter("nodeId", nodeId)).lift(0)
    
  2. 仔细检查进入 session.queryForObject 的 Scala class。保留您现有的查询,但使用 classOf[MicroConfig] 而不是 new MicroConfig().getClass.