如何使用spring-data-couchbase正确执行单场n1ql投影

时间:2018-06-28 06:40:14

标签: n1ql spring-data-couchbase

我正在尝试在文档中投影单个字段。我尝试了几种方法-在此Spring data Couchbase doc中提到的一种方法在此question

中提到的另一种方法

全部返回相同的异常

org.springframework.data.couchbase.core.CouchbaseQueryExecutionException:    
Unable to execute query due to the following n1ql errors: {"msg":"Ambiguous reference to field _class.","code":3000}
    at org.springframework.data.couchbase.core.CouchbaseTemplate.findByN1QL(CouchbaseTemplate.java:458) ~[spring-data-couchbase-3.0.6.RELEASE.jar:3.0.6.RELEASE]

下面是我正在使用的查询,它在Query workbench

上按预期运行
public interface ProjectRespository extends CouchbasePagingAndSortingRepository<Project, String> {

     @Query("SELECT DISTINCT projectId where #{#n1ql.filter} AND serverTech = $1")   
      List<ProjectIdDTO> findByServerTech(@Param("serverTech") String serverTech);

ProjectIdDTO是我专门定义的DTO,用于返回ProjectId的列表。不知道我在这里想念什么。

1 个答案:

答案 0 :(得分:0)

感谢@vsr @subhashni指出。琐碎的错误。确实是导致错误的## n1ql.bucket}丢失。

Ambiguous reference to field _class应该提示我仔细检查查询。