标签: spring-data-couchbase

是否存在CouchDB的弹簧数据?

Spring数据可以与CouchDB一起使用吗?我知道有一个社区项目Spring-Data-Couchbase但是它与CouchDB兼容还是仅适用于Couchbase?

如果没有,是否有CouchDB版本的Spring-data?或者我无法在CouchDB中使用spring-data?

java couchdb couchbase spring-data spring-data-couchbase

9
推荐指数
1
解决办法
5801
查看次数

防止在couchbase连接错误时Spring Boot启动失败

使用Spring Boot 1.4.1.Release和Spring Data Couchbase 2.1.3.RELEASE的组合,有没有办法防止应用程序启动失败,如果它无法连接到couchbase?

当前行为:应用程序无法在启动和退出时连接到couchbase.

目标:应用程序将继续启动,即使它无法连接到Couchbase,使用CouchbaseEnvironment中的超时配置,并不断尝试在后台连接.

在Spring Boot中,我们可以将Spring JDBC配置为在启动时忽略失败spring.datasource.continue-on-error=true.Spring Data Couchbase中是否有类似的机会加上重试失败?

java couchbase spring-data spring-boot spring-data-couchbase

9
推荐指数
1
解决办法
1168
查看次数

使用Spring Boot的Couchbase的通用类型库

我在Spring Boot中创建了一个实用程序,用于以更通用的方式将数据连接和插入/添加到沙发床中。

我有这样的事情:

public interface GenericRepository extends CouchbaseRepository<MyClass, String> {
}
Run Code Online (Sandbox Code Playgroud)

在那里我有MyClass我愿意接受任何形式的文件插入到couchbase。

我尝试了一些类似使用通用类型T的操作,但没有成功,因为出现以下错误:

原因:org.springframework.data.mapping.MappingException:找不到类型类java.lang.Object的PersistentEntity!

我的结构是:服务(接口/ Impl)> DAO(接口/ Impl)>存储库

额外信息:在上述模型中,我传递了通用类型T。我通过带有@Document注释的Pojo调用服务。

目标是消除每种文档类型具有一个存储库类的“依赖性”。

java generics couchbase spring-boot spring-data-couchbase

6
推荐指数
1
解决办法
155
查看次数

找不到映射元数据

引起:org.springframework.data.mapping.model.MappingException:在org.springframework.data.couchbase.core.convert.MappingCouchbaseConverter.read(MappingCouchbaseConverter.java:140)找不到java.lang.Object的映射元数据

尝试从我的couchbase服务器检索文档时收到此错误.该文档是一个简单的JSON对象,其中包含嵌套对象以及JSON对象列表.当文档仅包含列表时,我能够成功获取文档,但是当嵌套对象存在时,我无法成功获取文档.

我是否必须将任何嵌套对象定义为couchbase和spring的java类,或者我错过了什么.

couchbase spring-data-couchbase

5
推荐指数
0
解决办法
796
查看次数

使用 Spring Data Couchbase 连接到不同的 Couchbase 集群

我正在寻找一种使用 Spring Data Couchbase 连接到两个单独的 Couchbase 集群的方法。查看文档和实现,尚不清楚如何执行此操作,我担心如果有两个扩展的配置,将会出现 bean 名称冲突AbstractCouchbaseConfiguration。唯一看起来很接近的是使用RepositoryOperationsMapping为不同的存储库指定不同的模板。然而,这并不符合我的需求,因为每个 Couchbase 配置都不会意识到另一个配置。我现在看到这样做的唯一方法是要么不使用AbstractCouchbaseConfiguration和设置我自己的bean,要么覆盖所有beanAbstractCouchbaseConfiguration并提供新的bean名称。在每种情况下,我都会覆盖注释中的 couchbase 模板 bean 名称@EnableCouchbaseRepositories。但是,我不确定这是否有效或者是否有更好的选择。

这可能吗?如果可以,我应该采取什么最佳路线?

谢谢

spring-data-couchbase

5
推荐指数
1
解决办法
849
查看次数

Spring Data Couchbase:自动生成 ID

我正在设置一个带有@Id注释的文档,在我的测试中我得到了一个,MappingException因为在创建新文档时没有设置 Id。spring-data + couchbase 无法自动为新文档分配ID?

spring-data-couchbase

5
推荐指数
1
解决办法
3620
查看次数

使用Couchbase进行单元和集成测试

我最近建立了一个使用Spring-Data-Couchbase的新项目,而我对如何在此处进行单元和集成测试完全感到困惑。

通常,使用JPA,我可以以某种方式模拟我的存储库(假设对于使用Spring的长沙发来说这是相似的),并且对于单元测试来说还可以,但是通常对于JPA,我连接一个内存数据库并具有完整的集成测试套件。有什么办法可以通过沙发床做到这一点?

另外,如果您不介意在此处提及任何提示,因为这是我的第一个主要NoSQL项目:)谢谢!

java spring unit-testing couchbase spring-data-couchbase

5
推荐指数
1
解决办法
2342
查看次数

Couchbase 在 N1QL 参数化查询中使用了错误的索引

我对 couchbase 查询计划的工作方式理解有问题。我将 SpringData 与 Couchbase 4.1 结合使用,并提供 Couchbase 存储库的自定义实现。在我的 Couchbase 存储库的自定义实现中,我有以下方法:

String queryAsString = "SELECT MyDatabase.*, META().id as _ID, META().cas as _CAS FROM MyDatabase WHERE segmentId = $id AND _class = $class ORDER BY executionTime DESC LIMIT 1";
JsonObject params = JsonObject.create()
        .put(CLASS_VARIABLE, MyClass.class.getCanonicalName())
        .put(ID_VARIABLE, segmentId);

N1qlQuery query = N1qlQuery.parameterized(queryAsString, params);
List<MyClass> resultList = couchbaseTemplate.findByN1QL(query, SegmentMembers.class);
return resultList.isEmpty() ? null : resultList.get(0);
Run Code Online (Sandbox Code Playgroud)

结果,Spring Data 生成以下 json 对象,表示对 Couchbase 的查询:

{
    "$class":"path/MyClass",
    "statement":"SELECT MyDatabase.*, META().id as _ID, META().cas as _CAS …
Run Code Online (Sandbox Code Playgroud)

java couchbase spring-data spring-data-couchbase couchbase-java-api

5
推荐指数
1
解决办法
898
查看次数

使用@WebMvcTest时如何排除使用Spring的AutoConfiguration添加的类?

我想使用测试我的控制器@WebMvcTest并模拟依赖项来测试我的控制器,但 Spring Boot 的 AutoConfiguration 会自动加载我的 Couchbase(Spring Data)配置。Couchbase 在某些运行测试的平台上不可用,因此 Test 类将抛出异常。如何从自动配置机制中排除某些类?

我尝试了andexcludeFilters的选项@WebMvcTest@ActiveProfile,但这不起作用。

测试配置:

@RunWith(SpringRunner.class)
@WebMvcTest(value = ExchangeJobImportController.class, excludeFilters = @ComponentScan.Filter(classes = CouchbaseConfiguration.class))
@ActiveProfiles("test")
public class ExchangeJobImportControllerTest {
  ...
}
Run Code Online (Sandbox Code Playgroud)

沙发底座配置:

@Configuration
@EnableCouchbaseAuditing
@EnableConfigurationProperties({CouchbaseProperties.class})
@EnableCouchbaseRepositories(basePackages = "com....")
public class CouchbaseConfiguration extends AbstractCouchbaseConfiguration {
  ...
}
Run Code Online (Sandbox Code Playgroud)

spring unit-testing spring-mvc spring-boot spring-data-couchbase

5
推荐指数
1
解决办法
5027
查看次数

如何在Couchbase中捕获保存或更新事件

我希望能够在Couchbase中更新或创建文档时进行一些数据操作。

文档可以通过Sync Gateway或我们自己的从http服务流式传输数据的代码到达我们的数据库。拥有一个可以拦截所有更新的位置,将是很棒的。

我们正在对此数据运行一个Spring Boot REST API,因此这是拥有拦截器/侦听器的好地方。无论哪种方式,我都倾向于Java解决方案。

数据被编写为JSON而不是使用Spring实体,所以我不能使用仅侦听Entity类事件的ApplicationListener。如果我错了纠正我。我可以找到一些珍贵的设置ApplicationListeners的示例,因此我在这里可能错了,但似乎无法正常工作。

我看到有一个Eventing服务,您可以在其中编写Java脚本,但是由于多种原因,我不希望这样做。我不希望在平台和语言之间分散我们的API代码,也不确定是否可以在我们的系统上运行事件服务,等等。同样,我也可以公开辩论。

就我所知,这仅使DCP显得很低。 https://blog.couchbase.com/couchbases-history-everything-dcp/,但看起来像是完成这项工作的工具。

问题:是否有另一种较低级别的方法来捕获Couchbase中的JSON对象(不是DCP实体)的更新事件。

java spring couchbase spring-data-couchbase

5
推荐指数
1
解决办法
273
查看次数