“上下文中没有事务”来自哪里?

问题描述 投票:1回答:1

我通过向我的Spring Boot项目添加spring-boot-starter-data-mongodb-reactive依赖项来使用反应性MongoDb驱动程序。升级到Spring Boot 2.2.x后出现此错误。

事实证明,如果我做的事情很简单:

class Something(@Id val name: String)

@Repository
interface SomethingRepository: ReactiveCrudRepository<Something, String>

@SpringBootTest
class DemoApplicationTests
{
    @Autowired protected lateinit var repository: SomethingRepository

    @Test
    fun test()
    {
        repository
            .save( Something("1") )
            .onErrorContinue { throwable, _ -> println(throwable.message) }
            .block()
    }
}

我得到输出:

...
2019-12-12 20:58:48.379  INFO 24425 --- [    Test worker] com.example.demo.DemoApplicationTests    : Started DemoApplicationTests in 2.545 seconds (JVM running for 3.987)
No transaction in context
No transaction in context
...

由于几个原因,这看起来很奇怪:

  1. 对象已成功保存到数据库中。
  2. 即使管道由Mono组成,也会报告两次错误。>
  3. The documentation的[onErrorContinue]建议运算符drops
  4. 导致错误的元素,该错误与1冲突。
  5. 错误是由NoTransactionInContextException的一部分引起的springframework.transaction引起的,但是我什至没有对事务执行任何操作。
  6. 有人遇到过这个问题吗?这是框架中的错误,还是我做错了?

我通过在Spring Boot项目中添加spring-boot-starter-data-mongodb-reactive依赖项来使用反应性MongoDb驱动程序。升级到Spring Boot 2.2.x后出现此错误。它...

mongodb spring-boot spring-data-mongodb project-reactor
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.