Spring Data Neo4j 中 byId 的派生查询不正确

Incorrect derived query for byId in Spring Data Neo4j

我有两个实体:用户和连接,以及两个适当的存储库。两个实体都有 @GraphId id 字段。连接实体有 User user 字段。

在 ConnectionRepository 接口中,我添加了以下方法:

List<Connection> findByUserId(long userId)

但是没用。它生成不正确的密码查询。我认为它不正确,因为它包含这样的子句:

WHERE user.id = 15

不起作用,因为 id 不是 属性。必须是:

WHERE id(user) = 15

这是一个错误吗?无论如何,我怎样才能让它工作?

派生查询转换为 Connection 上定义的 user 的 属性 id。节点实体很可能也包含用户管理的 id 属性,假设 id 始终是节点 ID 是不正确的。

在这种情况下,您可能需要使用 @Query

@Query("MATCH (user:label) WHERE ID(user)={0} return user")
List<Connection> findByUserId(long userId)