特定のスキーマを持たないレガシーCouchbaseバケットからデータを取得する必要があります。 Couchbase Javaクライアントからcom.couchbase.client.java.document.StringDocument
という名前でマップすることができます。私はこの直接Javaクライアントを使用して行うことができます。Spring Data Couchbaseと外部ドキュメント(依存関係から)をマッピングすることは可能ですか?
bucket.get(key, StringDocument.class)
をしかし、どのように、私はorg.springframework.data.repository.CrudRepository
を使用して、このStringDocument
をマッピングすることができますか?
このようなインターフェイスinterface UserRepository extends CrudRepository<StringDocument, String>
を作成することはできません。なぜなら、Spring Data Couchbaseは@Documentアノテーションと@Idアノテーションを必要とするからです。
すべてのエンティティに@Document注釈を付ける必要があります。また、エンティティの各フィールドに@Fieldアノテーションを注釈する必要があります。これは厳密に言えばオプションですが、エッジケースを減らすのに役立ち、エンティティの意図と設計を明確に示します。
常に存在する必要がある特別な@注釈アノテーションもあります。ベストプラクティスは、プロパティIDにも名前を付けることです。
バケットを直接使用するか、自分の類似のエンティティを作成するか、別の解決策がありますか?
次のバージョンのspring-boot-startter-data-couchbase:1.5.9.RELEASE
を使用します。
ありがとうございます!より良い回答が得られない場合は、私は受け入れられたとしてあなたの印をつけるでしょう:) – solomkinmv