2016-01-19 118 views
0

我試圖將我自己的(自定義)findMembersByName方法添加到我的couchbase存儲庫中。@Query with Pageable參數在spring-data-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'參數存在問題。

當我使用分頁時,應該如何傳遞額外的參數進行查詢?

回答

1

頁面/切片查詢對於內聯的N1QL查詢沒有多大意義。

這是因爲根據定義,每個新頁面都必須使用略有修改的查詢(限制和偏移當前頁面)。這不是我們用普通的String語句支持的東西。

(注:然而,該特定消息仍然可以是來自一個錯誤Spring Data Commons

+0

但在文檔是示例,其中內聯N1QL查詢用於與可分頁 - 段落5.4.6。 :http://docs.spring.io/spring-data/couchbase/docs/2.0.0.RC1/reference/html/ – IgorekPotworek

+0

第5段是包含通用公共文檔,所有Spring Data模塊都有它,但它使用JPA作爲示例的模塊。在現在的Spring Data Couchbase中,我只是不夠自信,我可以安全地改變內聯查詢並支持可查詢的頁面。 –

+0

好的。非常感謝你。 – IgorekPotworek