JPA Persist

bronks

Top Contributor
Hi!

Nehmen wir mal an: Ich hole mir eine Entity übergebe diese an die View, wo diese Entity geändert wird. Danach folgt ein
Code:
        em.getTransaction().begin();
        em.merge(buch);
        em.persist(buch);
        em.getTransaction().commit();

Das em.persist will immer einen insert durchühren, obwohl die Entity bereits in der Datenbank exisitert. Ich dachte, daß die von der View modifizierte Entity vor dem em.merge einfach nur detached ist, nach dem em.merge managed ist und deshalb vom em.persist ein Update auf die Datenbank abgeschossen wird, denn die Referenz dürfte wohl immer auf dasselbe EntityObjekt zeigen.

Wo liegt der Denkfehler?
Was mache ich falsch?

Danke

Bronks
 
M

maki

Gast
persist ist wirklich für transiente Entities gedacht, merge kann sowoh als auch, also ist persist überflüssig & falsch ;)
 
G

Gelöschtes Mitglied 5909

Gast
wobei merge beim inserten neuer objekte mein ich keine pks aus sequenzes erzeugt, oder täsch ich mich?
 

Ähnliche Java Themen


Oben