2017-01-11 8 views
0

N1QLとSpring Dataを使用したCouchbaseではまだ比較的新しいです。私はすべての異なるフィールドのリストを取得しようとします。私は結果がかなり大きいと予想しているので、エンティティ全体を取得したくありません。Couchbase + Spring Data:@Queryを使用してエンティティ全体ではなくフィールドのみを取得します。

マイドキュメントは

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

よう

「正確に1結果を返すことが期待されているプリミティブ型を返す クエリ」マイリポジトリクラスが

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

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

} 

である。しかし、私は常に例外を取得見えます

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) 

リターンする方法はありますかすべてのフィールドではなく、エンティティ全体ではありませんか?私が 'バックインスクからselect distinct sku'というクエリを実行しようとすると、 CouchbaseのGUIではうまくいきます!

私はspring-data-couchbase 2.1.5とCouchbase 4.5.1-2844で作業しています。

答えて

関連する問題