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)
我有两个实体:用户和连接,以及两个适当的存储库。两个实体都有 @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)