防止回滚 - Spring 数据、JUnit 和 Neo4J
Prevent Rollbacks - Spring Data, JUnit, & Neo4J
我已安装 Spring Data Neo4j,运行良好。我已经设置了几个单元测试,并且在测试 class 上使用了 @Transactional
注释。测试运行,但是他们写入的数据总是回滚。在日志中我可以看到:
] o.n.o.drivers.http.request.HttpRequest ...
request: {"statements":[{"statement":"UNWIND {rows} as row MATCH ...
但是我想抑制这个,我尝试使用(在 Kotlin 中):
@Test
@Commit
fun myDbTest() {...}
和
@Test
@Rollback(false)
fun myDbTest() {...}
但是注释被忽略了?
我似乎遇到了与大多数人相反的问题,需要回滚,但它不起作用 :) 在我的情况下,回滚工作完美,我希望将其关闭。
Spring 根据 official documentation 版本 4.0.x
和 4.1.x
之间针对 Spring Data Neo4j (SDN) 编写的集成测试将不起作用。这是因为事务管理器实现没有集成到预期的 Spring 事务生态系统中。自 4.2.x
起,此问题现已得到修复,并将按照文档进行操作。
在撰写本文时 4.2.0.M1
是最新版本,但包含几个严重错误。 4.2.0.RC1
将于 2016 年 11 月 28 日到期,现在 4.2.0.BUILD-SNAPSHOT
实际上非常稳定(并且已经稳定了一段时间)。
如果您必须在 4.2.x
之前将此行为与 SDN 一起使用,您可以连接 TransactionTemplate
而不是 @Transactional
,这将使您能够完全控制事务语义。
我已安装 Spring Data Neo4j,运行良好。我已经设置了几个单元测试,并且在测试 class 上使用了 @Transactional
注释。测试运行,但是他们写入的数据总是回滚。在日志中我可以看到:
] o.n.o.drivers.http.request.HttpRequest ...
request: {"statements":[{"statement":"UNWIND {rows} as row MATCH ...
但是我想抑制这个,我尝试使用(在 Kotlin 中):
@Test
@Commit
fun myDbTest() {...}
和
@Test
@Rollback(false)
fun myDbTest() {...}
但是注释被忽略了?
我似乎遇到了与大多数人相反的问题,需要回滚,但它不起作用 :) 在我的情况下,回滚工作完美,我希望将其关闭。
Spring 根据 official documentation 版本 4.0.x
和 4.1.x
之间针对 Spring Data Neo4j (SDN) 编写的集成测试将不起作用。这是因为事务管理器实现没有集成到预期的 Spring 事务生态系统中。自 4.2.x
起,此问题现已得到修复,并将按照文档进行操作。
在撰写本文时 4.2.0.M1
是最新版本,但包含几个严重错误。 4.2.0.RC1
将于 2016 年 11 月 28 日到期,现在 4.2.0.BUILD-SNAPSHOT
实际上非常稳定(并且已经稳定了一段时间)。
如果您必须在 4.2.x
之前将此行为与 SDN 一起使用,您可以连接 TransactionTemplate
而不是 @Transactional
,这将使您能够完全控制事务语义。