0

如何创建基于 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.

}

谢谢你。

4

1 回答 1

2

正如您在评论中提到的,您应该从 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);
于 2016-01-19T13:20:57.000 回答