In einer Transaktion, wenn es einen Fehler gibt, ist es möglich, die nicht festgeschriebenen Daten zu aktualisieren und Commit statt Rollback der Transaktion?Aktualisieren nicht festgeschriebener Daten mit Hibernate
1
A
Antwort
0
Nein. Das ist nicht möglich, und zwar aus sehr guten Gründen.
Wenn Sie eine Ausnahme beim Löschen des JPA- und Hibernate-Persistenzkontexts erhalten, ist nicht klar, wie viele Entitätsstatusübergänge synchronisiert wurden und welche Statusübergänge überhaupt nicht gelöscht wurden.
Genau wie ein ACID transaction should be atomic, sollte die JPA Unit of Work (Persistence Context) ebenfalls atomar sein.
Versuchen, dieses Verhalten zu brechen, ist ein Datenzugriff Design Smell und tels Sie, dass es eine bessere Lösung für das ursprüngliche Problem, das Sie zu dieser Frage geführt hat.
Verwandte Themen
- 1. Hibernate verschmelzen mit Flush nicht Aktualisieren von Daten
- 2. Hibernate + H2 nicht aktualisieren ja_no type Spalte
- 3. Konnte meine Daten mit Hibernate nicht beibehalten
- 4. Git: Kann wegen nicht festgeschriebener Änderungen nicht umstellen
- 5. kann einen Datensatz nicht aktualisieren. Hibernate
- 6. Hibernate - zwischen Daten funktioniert nicht
- 7. Git: Rückgängigmachen nicht festgeschriebener Änderungen zum Zurücksetzen bestimmter Datei
- 8. JPA-Hibernate persist Daten, die nicht gespeichert
- 9. Aktualisieren von Zählern durch Hibernate
- 10. Daten mit jquery aktualisieren
- 11. aktualisieren Daten mit Ajax
- 12. Hibernate nicht mit Datenbank synchronisiert
- 13. Build mit Hibernate funktioniert nicht (nur Hibernate)
- 14. Hibernate Die Daten werden nicht abgerufen.
- 15. aktualisieren Kundentabelle mit Rechnungen Daten
- 16. Hibernate Speichern der Daten, wenn nicht in DB vorhanden, sonst aktualisieren
- 17. DataGridView-Daten mit DataView aktualisieren
- 18. Hibernate OneToMany Beziehung nicht neue Daten zuordnen
- 19. "Nicht zugeordnet" Ausnahme beim Aktualisieren der Tabelle in Hibernate
- 20. Hibernate Criteria mit Projektion ist nicht Kommissionierung Daten
- 21. Kann nicht Daten in Xhtml DataTable mit Hibernate anzeigen, Spring
- 22. Daten aktualisieren Entity Framework mit
- 23. Daten 'Sicherheit' mit Java und Hibernate
- 24. Hibernate: Einfügen von Daten mit Fremdschlüssel
- 25. Daten mit CriteriaQuery in Hibernate 5
- 26. Spring JPA/Hibernate - wie aktualisieren, wenn Objekt nicht geändert wird
- 27. Ausnahmebedingung beim Abrufen von Daten mit Hibernate
- 28. java.lang.StackOverflowError beim Zugriff auf Daten mit Hibernate
- 29. Keine vollständigen Daten mit Hibernate erhalten
- 30. Problem mit DataGridView - nicht mit meinen Daten aktualisieren
Ist es besser, den Transaktionsmanager die Transaktion zurücksetzen zu lassen und einen Datensatz in eine andere Tabelle für Audit Trail einzufügen? –
Nun, die zurückrollende Transaktion bedeutet, dass kein Eintrag im Redo-Log der Datenbank vorhanden sein wird. Daher sollte das Audit-Log keine nicht vorhandenen Datenbankänderungen kennzeichnen. Wenn Sie jedoch Event Sourcing verwenden müssen, können Sie alle Befehle protokollieren, unabhängig davon, ob sie erfolgreich oder fehlgeschlagen sind. Dafür müssen Sie eine separate Transaktion verwenden, bevor Sie die mit JPA und Hibernate öffnen. –
Gibt es ein JTA-Äquivalent der Propagierung - requires_new oder wie kann es programmgesteuert erfolgen? –