是否可以将 Spring Data Couchbase 映射到外部文档(来自依赖项)?
Is it possible to map Spring Data Couchbase with external document (from dependency)?
我需要从没有特定模式的旧版 Couchbase 存储桶中检索数据。它可以从 Couchbase Java 客户端映射为 com.couchbase.client.java.document.StringDocument
。我可以直接使用 Java client:
bucket.get(key, StringDocument.class)
但是我如何使用 org.springframework.data.repository.CrudRepository
映射此 StringDocument
?
我无法创建这样的界面 interface UserRepository extends CrudRepository<StringDocument, String>
因为 Spring Data Couchbase 需要 @Document 和 @Id 注释。
All entities should be annotated with the @Document annotation. Also, every field in the entity should be annotated with the @Field annotation. While this is - strictly speaking - optional, it helps to reduce edge cases and clearly shows the intent and design of the entity.
There is also a special @Id annotation which needs to be always in place. Best practice is to also name the property id.
是直接使用Bucket,自己创建类似的实体,还是有别的解决方案?
我使用以下版本的 spring-boot-starter-data-couchbase:1.5.9.RELEASE
.
如果它只是一个 StringDocument
(并且它甚至没有被 spring-data-couchbase
开始保存.. 它注入 _class
属性用于反序列化目的)那么我会只需使用桶来检索它。
请记住,如果您的存储库(我说的是您定义的映射到 StringDocument 所在的同一存储桶的任何其他存储库)定义为 CouchbaseRepository
,您将能够访问像这样 repository.getCouchbaseOperations().getCouchbaseBucket()
从存储库方法中存储本身。或者您可以尝试以下 repository.getCouchbaseOperations().findById("id", StringDocument.class)
.
我需要从没有特定模式的旧版 Couchbase 存储桶中检索数据。它可以从 Couchbase Java 客户端映射为 com.couchbase.client.java.document.StringDocument
。我可以直接使用 Java client:
bucket.get(key, StringDocument.class)
但是我如何使用 org.springframework.data.repository.CrudRepository
映射此 StringDocument
?
我无法创建这样的界面 interface UserRepository extends CrudRepository<StringDocument, String>
因为 Spring Data Couchbase 需要 @Document 和 @Id 注释。
All entities should be annotated with the @Document annotation. Also, every field in the entity should be annotated with the @Field annotation. While this is - strictly speaking - optional, it helps to reduce edge cases and clearly shows the intent and design of the entity.
There is also a special @Id annotation which needs to be always in place. Best practice is to also name the property id.
是直接使用Bucket,自己创建类似的实体,还是有别的解决方案?
我使用以下版本的 spring-boot-starter-data-couchbase:1.5.9.RELEASE
.
如果它只是一个 StringDocument
(并且它甚至没有被 spring-data-couchbase
开始保存.. 它注入 _class
属性用于反序列化目的)那么我会只需使用桶来检索它。
请记住,如果您的存储库(我说的是您定义的映射到 StringDocument 所在的同一存储桶的任何其他存储库)定义为 CouchbaseRepository
,您将能够访问像这样 repository.getCouchbaseOperations().getCouchbaseBucket()
从存储库方法中存储本身。或者您可以尝试以下 repository.getCouchbaseOperations().findById("id", StringDocument.class)
.