2012-04-05 6 views
0

JPA ist im Wesentlichen eine höhere Abstraktion von JDBC. EntityManager hat eine API setAutoFlushMode. Es kann auf AUTO oder COMMIT eingestellt werden. Was ist das Äquivalent zu JDBC? dankeEntityManger Spülmodus in JDBC

Antwort

4

JDBC hat auch Auto Commit.

Sie dienen beide zur Konfiguration, ob die Bibliothek automatisch an die Datenbank übergeben werden soll.

JDBCs Auto-Commit ist sehr einfach, es wird jedes Update sofort an die Datenbank übergeben. Ohne Auto-Commit werden Änderungen erst dann festgeschrieben, wenn die Methode commit aufgerufen wird.

JPA AUTO verursacht eine Flush zur Datenbank, bevor eine Abfrage ausgeführt wird. Einfache Operationen wie find erfordern keine Spülung, da die Bibliothek die Suche bewältigen kann. Abfragen wären jedoch sehr viel komplizierter, und wenn AUTO eingestellt ist, wird sie zuerst geleert. Wenn der Modus auf COMMIT festgelegt ist, werden die Änderungen nur bei einem Aufruf von Commit oder Flush in die Datenbank übertragen. Wenn COMMIT festgelegt ist und eine Abfrage ausgeführt wird, gibt es keine Ergebnisse zurück, die nicht gelöscht wurden.

+0

Danke. Wenn JPA auf automatisches Leeren zu den Datenbanken eingestellt ist, wird die Transaktion durchgeführt? Warum ist eine Abfrage anders? – dublintech

+0

Nein, die Transaktion wird nicht ausgeführt. "Finden" ist nur ein gebräuchliches Wort für eine Kategorie von Abfragen, wie zum Beispiel: "findById". – esej