Ich habe einige Verwirrung mit einigen einfachen Beispielen, die ich für Eclipselink und persistente Objekte betrachte. Sehr neu dazu. Spielt es eine Rolle, an welcher Stelle ein Objekt erstellt und mutiert wird, um es in einer Datenbank zu speichern? z.B. Müssen alle Arbeiten, die Sie mit dem Objekt machen, NACHEM.getTransaction() ausgeführt werden. wird genannt? oder kannst du tun, was immer du brauchst mit diesem Objekt und dann anfangen, zu bestehen, zu schließen?JPA EntityTransaction, Erstellen und Persistieren eines neuen Objekts
Ich verwende dieses Beispiel mit Tomcat. Nicht-jta RESOURCE_LOCAL
Die Unterschiede in der Frage unter:
EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
// Creating and mutating object BEFORE begin() is called
Todo todo = new Todo();
todo.setSummary("sum");
todo.setDescription("desc");
// create new todo
em.getTransaction().begin();
em.persist(todo);
em.getTransaction().commit();
Vs
EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
// Creating and mutating object AFTER begin() is called
Todo todo = new Todo();
todo.setSummary("sum");
todo.setDescription("desc");
em.persist(todo);
em.getTransaction().commit();
Nein, es ändert nichts. –
Ok, das ist was ich dachte, wenn ich den Quellcode für die EntityTransaction begin-Methode lese. Dachte, ich würde verrückt werden, weil jedes Beispiel, das ich sehe, dasselbe ist – JonnyD91