Ich habe Spring Data Neo4j verdrahtet und funktioniert gut. Ich habe ein paar Komponententests eingerichtet und verwende die @Transactional
Annotation für die Testklasse. Die Tests werden ausgeführt, aber die Daten, die sie schreiben, werden immer zurückgesetzt. In den Protokollen kann ich sehen:Rollbacks verhindern - Spring Data, JUnit, & Neo4J
] o.n.o.drivers.http.request.HttpRequest ...
request: {"statements":[{"statement":"UNWIND {rows} as row MATCH ...
Allerdings möchte ich dies zu unterdrücken, ich habe versucht mit (in Kotlin):
@Test
@Commit
fun myDbTest() {...}
und
@Test
@Rollback(false)
fun myDbTest() {...}
Aber die Anmerkung ist ignoriert?
Ich habe das gegenteilige Problem zu den meisten, wo der Rollback gewünscht wird, aber es funktioniert nicht :) In meinem Fall funktioniert der Rollback perfekt, und ich möchte es ausschalten.
Entfernen Sie einfach Transaktion von der Testklasse und die Daten sollten persistent sein. –
Ich habe das auch versucht, aber die Abwicklungsanweisungen werden immer noch am Ende des Tests ausgeführt. – Vince
Welche Version von SDN verwenden Sie? Wenn es vor 4.2.x ist, kann es die Dokumentation hier beachten oder nicht: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-tx- Freigabe-Transaktionen. Wenn Sie dieses Verhalten wirklich brauchen, funktioniert es am 4.2.x. Alternativ können Sie eine 'TransactionTemplate' anstelle von' @Transactional' verdrahten, mit der Sie die Transaktionssemantik vollständig kontrollieren können (es ist nur mehr Code). – digx1