如何创建基于IN子句搜索的查询?文件似乎不清楚?以下代码编译并运行,但结果集不是预期的节点。
public interface SomeRepository extends GraphRepository<SomeNode> {
@Query("START n=node({nodeid}) MATCH (n)-[r]-(p) WHERE p.id IN [{someids}] RETURN p")
public Set<SomeNode> findByIds(@Param("nodeid") Long rootNodeId, @Param("someids") Set<Long> someIds);
}
@NodeEntity
public class SomeNode {
@GraphId
private Long internalId;
@Indexed(unique = true)
private Long id;
// getters setters omitted.
}
谢谢。
答案 0 :(得分:0)
正如您在评论中提到的,您应该从IN子句中删除“[]”。 Spring-Data中的一个示例工作查询
@Query("MATCH (item:Item{id:{0}})-[:ALIGNS_TO]->(category:Category)
,(suggestItem:Item)-[:ALIGNS_TO]->(category)
Where NOT(suggestItem.id IN {2})
return suggestItem.id
ORDER BY suggestItem.avg_rating DESC limit {1} ")
List<Integer> getCategoryItems( Integer itemId,int limit ,Set<Integer> excludeSet);