首页 文章

是否可以将Spring Data Couchbase映射到外部文档(来自依赖)?

提问于
浏览
0

我需要从没有特定架构的传统Couchbase存储桶中检索数据 . 它可以从Couchbase Java客户端映射为 com.couchbase.client.java.document.StringDocument . 我可以使用Java客户端直接执行此操作:

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注释需要始终存在 . 最佳做法是命名属性id .

我应该直接使用Bucket,创建我自己的类似实体,还是有其他解决方案?

我使用以下版本的spring-boot-starter-data-couchbase: 1.5.9.RELEASE .

1 回答

  • 1

    如果它只是一个 StringDocument (并且它甚至没有被 spring-data-couchbase 保存,它开始于......为了反序列化目的而注入 _class 属性)那么我只是使用桶来检索它 .

    请记住,如果您的存储库(我正在谈论您已定义的任何其他存储库映射到StringDocument所在的同一个存储区)被定义为 CouchbaseRepository ,您将能够从存储库方法访问存储桶本身,如此 repository.getCouchbaseOperations().getCouchbaseBucket() . 或者也许您可以尝试以下 repository.getCouchbaseOperations().findById("id", StringDocument.class) .

相关问题