2011-11-06 103 views
3

使用弹簧数据图(Neo4J)作为数据存储区时可以获取Page结果吗?使用弹簧数据图/ Neo4j寻呼

findAll(Pageable)似乎是使用GraphRepository时唯一可查询的查询。我正在寻找的是Pageable其他findBy***()类似查询的API。

也许,使用Spring Data Graph可能会有一种完全不同(推荐)的Page结果。对此的思考也是受欢迎的!

回答

2

Spring Data Neo4j(2.0当前在SNAPSHOT中,但很快RC1)添加了对派生和注释查询的页面支持。 findAll()从CRUD-Repository继承。

我们可以为默认查询方法添加页面支持。你能为此提出一个JIRA issue吗?

派生示例和@Query带注释的Page方法。

interface UserRepository extends GraphRepository<User> { 
    // derived method 
    Page<User> findByTag(String tag, Pageable page); 
    @Query("start user=node({0}) match user-[r:RATED]-product where r.stars > 3 return product order by r.stars desc") 
    Page<Product> getRatedProducts(User user); 
} 

只需添加CYPHER(或小鬼)为依赖于你的应用程序:

<dependency> 
    <groupId>org.neo4j</groupId> 
    <artifactId>neo4j-cypher</artifactId> 
    <version>${neo4j.version}</version> 
</dependency> 
+0

感谢您的详细信息,@迈克尔。即使衍生的方法有效,我也很好 - 但是当我使用它们时,我收到一个错误 - “Cypher不可用,请将它添加到您的依赖项中”。任何想法为什么?同时,我将打开JIRA问题。 – Saket

+0

添加依赖项修复了错误 - 谢谢!但我现在有问题,查询两个属性= getByProperty1AndProperty2() – Saket

+0

什么问题?请提供更多的上下文。 –