Spring @Transaktions-und JDBC-autoCommit
Auf meine eigentliche Anwendung, ich habe eine DBCP connection pool, die nicht über JDBC autoCommit=false gesetzt. Es scheint, um die standardmäßigen autoCommit=true.
Dies ist wahrscheinlich ein Fehler, aber ich würde gerne verstehen, die Auswirkungen der änderung dieser parameter.
Bin ich mit:
- Spring, die mit @Transactional-annotation
- Spring Batch mit JDBC-Leser und Schreiber, schließlich Brauch tasklets mit JdbcTemplate
Ich würde gerne wissen, ob Frühling ob set autoCommit=false ist, wird auf die aktuelle Verbindung, wenn Sie im Kontext einer Transaktion erfolgt durch das TransactionManager.
Tut es die Standardeinstellung überschreiben? Weil es mir scheint, macht es Sinn, so zu tun.
- Ja, tut es. Der Frühling schafft es, für Sie mit der annotation der Implementierungsklasse.
- vielen Dank, aber könnten Sie beantwortet haben, statt einen Kommentar 🙂
- Don ' T care. Jeder hier ist ein Experte. Wenn ich eine Antwort geben, ich habe Leute sagen mir, es sollte ein Kommentar. Ich Kommentar und sagen Sie mir, es sollte eine Antwort sein. Who cares? Manchmal habe ich Zeit zum Antworten, manchmal habe ich nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
PlatformTransactionManager ist ein interface, also ich würde keine Decke sagen, dass alle Implementierungen set AutoCommit = false, aber die meisten gemeinsamen Umsetzung (DataSourceTransactionManager) hat set AutoCommit = false. siehe Codeausschnitt aus der doBegin Methode:
Nun, wie gesagt, es macht absolut Sinn, so zu tun, oder Sie würde nicht haben eine rollback-segment zu aktivieren, wird ein rollback auf.