Spring-Data中@Query params的集合? Neo4j的

时间:2013-10-14 22:15:06

标签: neo4j spring-data-neo4j

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

}

谢谢。

1 个答案:

答案 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);