ReactiveCrudRespository永远不会从SaveAll返回

在启动时,我检查一些数据,如果不存在尝试保存一些默认值(暂时用于测试)。

val subs = repo.findAll().toIterable() if(subs.none()) { repo.saveAll(defaults.map { Source(it.link.hashCode().toLong(), it::class.java.canonicalName, arrayOf(it.link)) }).blockLast() } 

在第一次运行时,我们将达到saveAll(),但从不解锁。 数据保存在MongoDB中,我可以用Robo 3t来确认。

随后运行的数据实际存在将导致第一次findAll从不解锁。

在MongoDB中的分析似乎显示出一个成功的查询。

findAll()查询的配置文件

我的资源库和实体如下:

 interface SourceRepository : ReactiveCrudRepository<Source, Long> { // } data class Source( @Id val id: Long, val type: String, val params: Array<String> ) 

这是在Kotlin,反对Spring Boot 2.0.0.M4。 我的目标是在Docker中运行的MongoDB实例。 如果我删除了这一点的启动逻辑,我的另一个ReactiveCrudRepository能够读/写就好,永远不会阻塞。

工作仓库的saveAll()调用也在blockLast()中结束,因为我发现没有这个保存就不会实际发生。