Ruhezustand/JPA – Getrennte Entität wurde übergeben, um die Ausnahme beizubehalten

Sie sind hier, weil Ihre Bewerbung gerade mit dieser lästigen Ausnahme ausgeworfen wurde: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: getrennte Entität an Persistenz übergeben. Es gibt mehrere Gründe, die diese Ausnahme verursachen können. Die Grundidee dieser Ausnahme besteht jedoch darin, dass sich das Objekt, das Sie beibehalten möchten, nicht im dauerhaften Zustand befindet. Beachten Sie, dass diese Ausnahme auch dann ausgelöst wird, wenn Sie die Transaktion in Ihrer Anwendung nicht aktiviert haben.

lesen Sie auch:

  • Frühling + Primefaces + Hibarnate
  • Einführung in Spring OXM

Eines der kompliziertesten Probleme bei der Arbeit mit Ruhezustand / JPA Projekte sind solche, die den Zustand persistenter Objekte differenzieren. Wenn Sie ein Objekt nicht mehr benötigen, können Sie eine Entität programmgesteuert von der Transaktion trennen und sie befindet sich dann nicht mehr im Persistenzstatus.

In vielen Fällen wäre das Objekt als abgetrennt betrachtet worden, obwohl Sie dies nicht absichtlich getan haben.

  • Überprüfen Sie, ob Sie versuchen, eine Entität beizubehalten, die dieselbe ID wie eine andere Entität hat und bereits im PersistenceContext Ihrer Anwendung vorhanden ist.
  • Legen Sie keine ID fest, bevor Sie sie gespeichert oder beibehalten haben. Hibernate prüft die Entität, die Sie übergeben haben, und geht davon aus, dass sie bereits in der Datenbank vorhanden ist, da ihr Primärschlüssel gefüllt ist.
  • Wenn Sie mit arbeiten Frühlings-MVC Anwendung, überprüfen Sie, ob Sie hinzugefügt haben in Ihrer Konfigurationsdatei. Wenn diese Zeile fehlt, wurden in Ihrer Anwendung keine Transaktionen gestartet. Dies wird letztendlich die Ausnahme javax.persistence.PersistenceException auslösen: org.hibernate.PersistentObjectException: tached entity übergeben an persist.
  • Wenn Sie dieses Problem immer noch nicht lösen können, schreiben Sie es bitte in den Kommentarbereich.

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen