在Spring-data-couchbase中使用Pageable参数的@Query

时间:2016-01-19 17:28:53

标签: java spring couchbase spring-data-couchbase

我正在尝试将自己的(自定义)findMembersByName方法添加到我的couchbase存储库中。

我的代码如下所示:

public interface MembersRepository extends PagingAndSortingRepository<Member, Long>, MembersRepositoryCustom {
    @Query("#{#n1ql.selectEntity} WHERE (IFMISSING(firstname,'') || ' ' || IFMISSING(lastname,'')) LIKE $1 AND #{#n1ql.filter}")
    Page<Member> findMembersByName(String name, Pageable pageable);
}

但如果我尝试运行此方法,我会遇到异常:

org.springframework.data.repository.query.ParameterOutOfBoundsException: Invalid parameter index! You seem to have declare too little query method parameters!

如果我删除分页,一切正常,所以我的查询没问题。 将'name'参数传递给statement是一个问题。

当我使用分页时,如何传递额外的参数进行查询?

1 个答案:

答案 0 :(得分:1)

使用内联的N1QL查询,页面/切片查询没有多大意义。

这是因为根据定义,每个新页面必须使用稍微修改的查询(在当前页面上限制和偏移)。这不是我们用普通的String语句支持的。

(注意:但是,此特定消息可能仍来自Spring Data Commons

中的错误