微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Micronaut-data with hibernate:中止的事务仍然修改数据库

如何解决Micronaut-data with hibernate:中止的事务仍然修改数据库

我目前在尝试让 micronaut 数据处理事务时遇到问题。

据我所知,流程如下:

  • 开始交易
  • 执行写入 1
  • 抛出异常

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

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

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

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

解决方法

正如在 gitter 上回答的那样,@MicronautTest 为每个测试启动一个事务并管理它。 要在测试中测试交易,必须通过

手动禁用此行为

@MicronautTest(transactional=false)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。