Kann ich zwei verschiedene Entitätsmanager verwenden, die in einer Transaktion auf dieselbe DataSource hinweisen?
-
14-11-2019 - |
Frage
Ich benutze den Frühling mit JPA.Und ich habe zwei Entitymanagers, die unterschiedliche Entitäten (verschiedene Module einer Anwendung) enthalten, und beide zeigen auf dieselbe DataSource.
Kann ich beide in einer Transaktion (unter Verwendung eines einzelnen Transaktionsmanns) verwenden? Muss ich JTA dafür verwenden?Wenn ja, was ist die beste Option, um sie unter Tomcat zu verwenden?
Wie konfiguriere ich es im Frühjahr?
Lösung
Beide Standard-JPA-Transaktionen und der generationspflichtigen SPRINGS-GROSSACDICETAGCODE sind an einen einzelnen JpaTransactionManager
gebunden.Sie können nicht mit mehreren Managern sprechen, und können keine Transaktion über sie koordinieren.
Wenn Sie dies tun müssen, müssen Sie entweder Ihre Entity Manager Configs zusammenführen, sodass Sie nur einen generationspoLDICETAGCODE-Modus haben oder JTA-Transaktionen (über den Spring-JTATRANSActionManager) verwenden.
Wenn Sie Tomcat verwenden (die keine Unterstützung außerhalb des Box-JTA-Supports hat), müssen Sie eine JTA-Implementierung von Drittanbietern finden.