带hibernate的微数据:中止的事务仍然会修改数据库



我目前在尝试让微数据与事务一起工作时遇到了一些问题。

据我所知,一个流:

<
  • 开始事务/gh>
  • 执行write 1
  • <
  • 抛出异常/gh>

应该产生一个未修改的数据库,即事务应该回滚。

我创建了一个最小的例子,使用微web启动,一个简单的实体,存储库和使用@Transactional, SynchronousTransactionManager等不同尝试的测试,但在所有情况下,数据库修改在事务后是可见的。最小的例子可以在这里找到:https://github.com/Spellmaker/transactiontestgradle/

测试类的直接链接:https://github.com/Spellmaker/transactiontestgradle/blob/master/src/test/kotlin/com/example/TransactiontestgradleTest.kt

显然,配置或我对事务的理解一定有问题。那么到底是哪一个呢?

正如gitter上的回答,@MicronautTest为每个测试启动一个事务并对其进行管理。要在测试中测试事务,必须通过

手动禁用此行为

@MicronautTest(事务性= false)

最新更新