Я все еще относительно новичок в Couchbase с N1QL и Spring Data. Я пытаюсь получить список всех отдельных полей. Я не хочу извлекать всю сущность, так как ожидаю, что результат будет довольно большим.
Мои документы выглядят так
{
"fieldname": "something",
...
}
Мой класс репозитория
@Repository
@N1qlPrimaryIndexed
public interface MyRepository extends CouchbasePagingAndSortingRepository<MyEntity, String> {
@Query("select distinct fieldname from mybucket")
Object findAllDistinctFields();
}
Но я всегда получаю Exception «Ожидается, что запрос, возвращающий примитивный тип, вернет ровно 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»; в графическом интерфейсе Couchbase все работает нормально!
Кстати, я работаю с spring-data-couchbase 2.1.5 и Couchbase 4.5.1-2844.