JPA: das Löschen detached Instanz
Bekomme ich resultList von typedQuery Objekt.
Ich nehme erste Objekt aus dieser Liste.
zB. LoginAttempt loginAttempt = loginAttempts.get(0);
Wenn ich ein update für dieses Objekt, und rufen Sie entityManager.merge(loginAttempt);
es erfolgreich aktualisiert wurde.
Aber wenn werde ich löschen Sie dieses Objekt, es gibt mir die Ausnahme, dh. java.lang.IllegalArgumentException: Removing a detached instance.
Jede Anregung. Danke 🙂
Eigentlich will ich nur entfernen. Ich sage nur Zusammenführen, weil, ich bin verwirrt, dass die merge funktioniert, aber entfernen ist nicht zu arbeiten...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Merge ist eigentlich Arbeit, weil Ihr Zweck ist, um den transit von detached zu managed Zustand. Entfernen, auf der anderen Seite kann die Arbeit nur auf verwaltete Einheiten.
Wenn Sie eine verwaltete Entität, die Sie aufrufen können
em.remove(-)
auf.Wenn Sie eine freistehende Person, die Sie anrufen sollten
Object managed = em.merge(detached)
und dannem.remove(managed)
. Sie müssen dies innerhalb der gleichen Transaktion Grenzen.Einen eine schnelle Suche zeigt, die Sie brauchen, um dies zu tun, in der gleichen Transaktion. Sie kann nicht verbinden und dann löschen. Sie brauchen, um es in der gleichen Transaktion, oder trennen Sie Sie in zwei Transaktionen