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
我在使用 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