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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以将Spring Data Couchbase映射到外部文档(来自依赖)?相关的知识,希望对你有一定的参考价值。

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

bucket.get(key, StringDocument.class)

但是我如何使用StringDocument映射这个org.springframework.data.repository.CrudRepository

我无法创建这样的接口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

答案

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

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

以上是关于是否可以将Spring Data Couchbase映射到外部文档(来自依赖)?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Data Flow 编辑现有流

Spring Boot + Spring Data 多租户

Spring Data Rest 基本路径

具有 Mysql JSON 类型的 Spring Data

Spring Data JPA - 创建动态查询注释

是否可以使用 JpaRepository 在 Spring Data JPA 中使用“TRUNCATE”?还是比标准 deleteAll() 更有效的方法?