【发布时间】:2018-03-01 19:54:36
【问题描述】:
我正在尝试在 Spring Data Couchbase 上进行基于 N1QL 的查询。文档说
#n1ql.fields 将替换为重建实体所需的字段列表(例如,对于 SELECT 子句)。
我的存储库实现是这个:
@Query("#{#n1ql.fields} WHERE #{#n1ql.filter}")
List<User> findAllByFields(String fields);
我这样称呼这个查询:
this.userRepository.findAllByFields("SELECT firstName FROM default");
我收到此错误:
原因:org.springframework.data.couchbase.core.CouchbaseQueryExecutionException:由于以下n1ql错误,无法执行查询: {"msg":"语法错误 - 在 AS","code":3000}
经过一番研究,我也尝试了:
@Query("SELECT #{#n1ql.fields} FROM #{#n1ql.bucket} WHERE #{#n1ql.filter}")
使用此查询,我没有收到错误,当我的查询尝试获取 firstName 字段时,我得到了所有存储的文档,但只有 ID 其他字段设置为 null。
this.userRepository.findAllByFields("firstName");
有人知道怎么做这样的查询吗?
提前谢谢你。
【问题讨论】:
标签: couchbase n1ql spring-data-couchbase