2016-11-04 17 views
0

私はSpring Data Neo4jを有線接続してうまく動作しています。私はいくつかの単体テストを設定しており、テストクラスのアノテーションは@Transactionalです。テストは実行されますが、書き込みデータは常にロールバックされます。私が見ることができるログに:ロールバック防止 - Spring Data、JUnit、&Neo4J

] o.n.o.drivers.http.request.HttpRequest ... 
request: {"statements":[{"statement":"UNWIND {rows} as row MATCH ... 

を、私はこれをSUPRESSしたいしかし、私は(Kotlinに)使用して試してみた:

@Test 
@Commit 
fun myDbTest() {...} 

@Test 
@Rollback(false) 
fun myDbTest() {...} 

しかし、注釈があります無視される?

ほとんどの場合、ロールバックが必要なところに問題はあるようですが、うまくいきません:)私の場合、ロールバックは完全に機能しています。

+0

テストクラスからトランザクションを削除するだけで、データは永続的でなければなりません。 –

+0

私もそれを試みましたが、unwind文はテストの最後に実行されます。 – Vince

+0

あなたはどのバージョンのSDNを使用していますか? 4.2.x以前の場合は、こちらのドキュメントを尊重してもよいし、そうでなくてもかまいません。http://docs.spring.io/spring/docs/current/spring-framework-reference/html/integration-testing.html#testcontext-tx-トランザクションを有効にします。この動作が本当に必要な場合は、4.2.xで動作します。代わりに '@ Transactional'の代わりに' TransactionTemplate'を呼び出すことで、トランザクションの意味を完全に制御することができます。 – digx1

答えて

1

スプリング統合バージョン4.0.x4.1.xの間でSpring Data Neo4j(SDN)に対して書かれたテストは、official documentationに従って動作しません。これは、トランザクションマネージャーの実装が予想されるSpring Transactionエコシステムに統合されていないためです。 4.2.x現在、これは修正されており、ドキュメントに従って動作します。

書き込み時には、4.2.0.M1は最新バージョンですが、いくつかの重大なバグがあります。 4.2.0.RC1は2016年11月28日に期限が到来し、現在は4.2.0.BUILD-SNAPSHOTが実際にはかなり安定しています(しばらくありました)。

4.2.xの前にSDNでこの動作を使用する必要がある場合は、@Transactionalの代わりにTransactionTemplateを接続すると、トランザクションのセマンティクスを完全に制御できます。

関連する問題