Unterschied zwischen UserTransaction und EntityTransaction
Titel sagt alles: Was ist der Unterschied zwischen einem UserTransaction
und ein EntityTransaction
?
Mein rudimentäres Verständnis ist, dass UserTransaction
wird verwendet, wenn JTA erforderlich ist (z.B. zum Abfragen von mehrere Dinge), und dass EntityTransaction
wird verwendet, wenn der PPV nur erforderlich ist (z.B. wenn die Abfrage atomaren).
Ist, dass der einzige Unterschied zwischen den beiden oder ist es mehr als das?
InformationsquelleAutor der Frage bguiz | 2010-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist grundsätzlich richtig, aber deine Beschreibung von "mehreren Dinge" und "atomic" ist ein bisschen seltsam. JTA ermöglicht es dem Entwickler auf verteilte Transaktion durchführen, Veränderungen auf vielfachen Ressourcen (Datenbanken, JMS-broker, etc.) atomar (alles-oder-nichts). Wenn nur eine Ressource zugegriffen wird (z.B. eine einzelne Datenbank), die Sie nicht brauchen, JTA, aber die Transaktion ist noch atomar (alles-oder-nichts). Das ist zum Beispiel dann der Fall, wenn Sie regelmäßig JDBC Transaktion auf einer Datenbank.
Angesichts
UserTransaction
vs.EntityTransaction
:EntityTransaction
zur Abgrenzung der Transaktion selbst.UserTransaction
. DieEntityManager
Haken selbst in die JTA-distributed transaction manager. Die einzige Subtilität ich bin mir dessen bewusst, vertritt die Auffassung, die bündig zu den änderungen. WennEntityTransaction
wird verwendet, JPA weiß, es muss Spülen Sie die änderungen. Wenn die Transaktion gesteuert werden, mitUserTransaction
die es braucht, um einen Rückruf zu registrieren mit JTAregisterSynchronization
so dass die änderungen in die Datenbank übertragen, bevor die Transaktion abgeschlossen ist. Wenn Sie mit EJB CMT (container managed transaction), die Sie nicht sogar brauchen, zu verwendenUserTransaction
: die app-server startet und Stoppt die Transaktionen für Sie.Fragen:
InformationsquelleAutor der Antwort ewernli