我正在实施关系搜索。我将关系类型列表作为参数,我也想使用节点的属性来进行查询。
Example :
In neo4j, assume that I have following nodes and relationships.
node (name:"a") - like - node(name:"b")
node (name:"a") - follow - node(name:"c")
node (name:"a") - follow -node(name:"e")
node(name:"a") - like- node(name:"d")
node (name:"s") - like - node(name:"b")
node (name:"s") - follow - node(name:"g")
node (name:"s") - follow -node(name:"e")
node(name:"s") - like- node(name:"v")
对于搜索,我将传递关系类型列表
示例查询:找到喜欢名称为“b”的节点的节点,并跟随名称为“c”的节点 结果应该是名为“a”的节点。
但喜欢和关注查询将是动态的。 (任意数量) 如何在春天写这样的查询?
答案 0 :(得分:1)
使用Neo4jTemplate
或执行动态Cypher查询
将其作为方法添加到您的实体的存储库中,例如。 UserRepository
(然后它在结构上是静态的,带参数是动态的。)
MATCH (u:User {name:{user}})-[:LIKES]->(t:Thing {name:{thing}}),
(u:User {name:{user}})-[:FOLLOWS]->(f:User {name:{friend}})
RETURN u;
您还可以从CypherDSLRepository扩展存储库接口,以执行动态CypherDSL查询。