我有两个实体:User和Connection,以及两个适当的存储库。两个实体都有@GraphId id
字段。连接实体具有User user
字段。
在ConnectionRepository接口中,我添加了以下方法:
List<Connection> findByUserId(long userId)
但它不起作用。它生成不正确的密码查询。我认为这是不正确的,因为它包含这样的条款:
WHERE user.id = 15
无效,因为id
不是属性。必须是:
WHERE id(user) = 15
这是一个错误吗?无论如何,我怎样才能让它发挥作用?
答案 0 :(得分:3)
派生的查询会转换为id
上定义的user
的属性Connection
。节点实体很可能也包含用户管理的id
属性,并且假设id
始终是节点ID是错误的。
在这种情况下,您可能希望改为使用@Query
。
@Query("MATCH (user:label) WHERE ID(user)={0} return user")
List<Connection> findByUserId(long userId)