【问题标题】:Couchbase + Spring Data: Get only field instead of whole entity using @QueryCouchbase + Spring Data:使用@Query 仅获取字段而不是整个实体
【发布时间】:2017-01-11 17:47:39
【问题描述】:

我在使用 N1QL 和 Spring Data 的 Couchbase 方面还是比较新的。我尝试检索所有不同字段的列表。我不想检索整个实体,因为我希望结果会很大。

我的文档看起来像

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

我的存储库类是

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

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

}

但我总是得到一个异常'返回原始类型的查询预计会返回 1 个结果'

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)

有没有办法只返回所有字段而不是整个实体?如果我尝试查询“从 backinstock 中选择不同的 sku;”在 Couchbase 的 GUI 中它工作正常!

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

【问题讨论】:

    标签: spring-data couchbase n1ql


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 2020-10-24
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      相关资源
      最近更新 更多