2017-03-19 11 views
0

Stringと異なる@Idプロパティを持つドキュメントを作成しようとしていますが、すべて正常に機能します。SpringデータCouchbaseオブジェクトID

ActorKey(key=d7471027-4bd1-40a3-8e29-5249f45beed4)

{ 
    "name": "Emma Watson", 
    "_class": "com.guilherme.miguel.domain.Actor" 
} 

、それは簡単なStringた場合などのIDを保存する方法はあります:私の問題は、文書がバケットに保存されている方法ですが、残念ながらそれはクラス名と接頭辞? これは

(単純なクエリは、ActorKey(キー= xxxxxxxxxxx)を使用するように私を強制します)、プレーンクエリで問題を回避するためにActor.javaです:

@Data 
@AllArgsConstructor 
@NoArgsConstructor 
@Document 
public class Actor { 

    @Id 
    private ActorKey key; 
    private String name; 

} 

ActorKey.java

@Data 
@AllArgsConstructor 
@NoArgsConstructor 
public class ActorKey implements Serializable { 

    private String key; 

} 

ActorRepository.java

@N1qlPrimaryIndexed 
@ViewIndexed(designDoc = "actor") 
public interface ActorRepository extends CouchbaseRepository<Actor, ActorKey> { 
} 

答えて

0

基礎となるCouchbaseのSDKには、ドキュメントの識別子としてString使用していますので、春・データ-Couchbaseのは、あなたの鍵オブジェクトにtoString()を呼び出します。あなたが見ているのは注釈の一部であるLombok-generatedtoString()メソッドの結果です。

toString()ActorKeyに明示的にオーバーライドしてください。

関連する問題