Couchbase + Spring 数据:使用@Query 只获取字段而不是整个实体

Couchbase + Spring Data: Get only field instead of whole entity using @Query

我在使用 N1QL 和 Spring 数据的 Couchbase 方面还比较陌生。我尝试检索所有不同字段的列表。我不想检索整个实体,因为我希望结果相当大。

我的文件看起来像

{
  "fieldname": "something",
  ...
} 

我的存储库 class 是

@Repository
@N1qlPrimaryIndexed
public interface MyRepository extends CouchbasePagingAndSortingRepository<MyEntity, String> {

    @Query("select distinct fieldname from mybucket")
    Object findAllDistinctFields();

}

但我总是得到一个异常'Query returning a primitive type are expected to return exactly 1 result'

org.springframework.data.couchbase.core.CouchbaseQueryExecutionException: Query returning a primitive type are expected to return exactly 1 result, got 100014
  at org.springframework.data.couchbase.repository.query.AbstractN1qlBasedQuery.executeSingleProjection(AbstractN1qlBasedQuery.java:193)
  at org.springframework.data.couchbase.repository.query.AbstractN1qlBasedQuery.executeDependingOnType(AbstractN1qlBasedQuery.java:134)
  at org.springframework.data.couchbase.repository.query.AbstractN1qlBasedQuery.execute(AbstractN1qlBasedQuery.java:93)

有没有办法只 return 所有字段而不是整个实体?如果我在 Couchbase 的 GUI 中尝试查询 'select distinct sku from backinstock;' 它工作正常!

顺便说一句,我正在使用 spring-data-couchbase 2.1.5 和 Couchbase 4.5.1-2844。

在 Spring data Ingalls 2.2.0-RC1 版本中,有投影支持可以获取实体的特定字段。参考文档在这里 http://docs.spring.io/spring-data/couchbase/docs/2.2.0.RC1/reference/html/#_dto_projections