Ich möchte eine nicht verwaltete Entität in einem anderen Persistenzkontext verwaltet werden. Ich habe gelesen, dass dies mit merge vorgenommen werden:jpa merge unmanaged entity
em.merge(user);
Aber wenn ich dies tun es nicht auf den Kontext hinzugefügt:
boolean isManaged = em.contains(user);
immer falsch ist.
Auch wenn ich folgendes machen:
User dbuser = em.find(User.class, user.getId());
em.merge(user);
boolean isManaged = em.contains(user);
Die dbuser und Anwender sind genau die gleichen.
Was mache ich falsch?
Ich bin mit JPA, MySql DB, JBoss EAP 6.1
Haben Sie eine Transaktion begonnen und abgeschlossen? Tun Sie das weiter: 'dbuser = em.merge (user);' – Sam
Kann ich eine Transaktion mit JPA starten (ohne Spring usw. oder nativen Hibernate)? Ich benutze einfach @TransactionManagement (TransactionManagementType.CONTAINER) – Dave
Man könnte das Transaktionsobjekt mit 'em.getTransaction()' zum Aufruf von '.begin()', '.commit()', '.rollback()' bekommen. Dies ist jedoch möglicherweise nicht notwendig oder sogar unmöglich (wenn Sie einen JTA EntityManager verwenden) in Ihrer Konfiguration. – Sam