Ich möchte Änderungen in meinem Domänenmodell verfolgen. Ich weiß, dass NHibernate ISession eine Implementierung von UnitOfWork-Pattern ist, so dass es diese Änderungen verfolgt. Gibt es eine Möglichkeit, sie herauszuziehen, zum Beispiel vor Commit() oder Flush()?Liste der geänderten Felder in Entität von NHibernate-Sitzung abrufen
2
A
Antwort
1
Werfen Sie einen Blick auf NHibernate's IInterceptor.
OnFlushDirty - zeigt Ihnen persistente Eigenschaften für ein aktualisiertes Objekt.
OnSave - zeigt Ihnen persistent Eigenschaften für ein gespeichertes Objekt.
Sie müssen nur eine Interceptor-Klasse erstellen, die diese Schnittstelle implementiert, und wenn Sie Ihre NHibernate-Sitzung konfigurieren, sagen Sie ihr, dass sie diese Klasse verwenden soll.
1
Ich denke, als Abfangjäger ein bisschen veraltet sind. Verwenden Sie NHibernate-Ereignisse. Ich habe ein OnPreUpdate-Ereignis abonniert. Sein Parameter hat State- und OldState-Eigenschaften, aber OldState ist immer Null. Weiß jemand, dass dieser OldState überhaupt funktioniert?
Verwandte Themen
- 1. Liste der geänderten Felder von ChangeSetEntry in ChangeSet?
- 2. Liste der Felder in Struktur abrufen
- 3. Letzte Entität von Datomic abrufen
- 4. Wie Liste der geänderten Objekte in Entity Framework bekommen 5
- 5. Liste unbekannter Felder aus Jackson abrufen
- 6. Abrufen von Spaltennamen in einer Doktrin2-Entität
- 7. Django: Liste der Modellfelder abrufen?
- 8. Wie erhalte ich den ursprünglichen Wert der geänderten Felder?
- 9. Wie man eine Liste der geänderten Felder mit ScriptRunner auf IssueUpdated Ereignis erhält?
- 10. Liste der Felder zurück von Pragma 'Felder verwenden' erhalten?
- 11. Liste der Felder an QuerySet.values übergeben()
- 12. Faktentabelle sollte Maßnahmen von "schwachen Entität" oder nur die Felder der übergeordneten Entität sollte
- 13. Bash - Abrufen der zuletzt geänderten Datei mit einer Erweiterung
- 14. Daten von einer verknüpften CakePHP3-Entität abrufen
- 15. Kotlin Reflexion Liste der Felder
- 16. C# Liste der Felder aus der Liste der Klasse extrahieren
- 17. Abrufen einer Entität aus CRM 4.0
- 18. Die Felder der Liste in Microsoft SharePoint
- 19. Liste der Inventarartikel von NetSuite abrufen
- 20. Liste der Berichte von SSRS abrufen?
- 21. Git pre-commit Haken: getting Liste der geänderten Dateien
- 22. Bazaar-Plugin: Liste der geänderten Dateien auf Pre-Commit-Hook
- 23. Sortieren einer Liste von Nummern mit geänderten Kosten
- 24. Hibernate Updates nur ausgewählte Spalten statt alle geänderten Felder
- 25. Abrufen bestimmter Felder mit der Elasticsearch Java API
- 26. NSFetchRequest kann Entität im Kontext nicht abrufen
- 27. Liste Felder in einer Tabelle
- 28. Abrufen einer einzelnen Spalte aus einer Entität
- 29. Liste der Schriftarten abrufen (Win32)
- 30. JQL: Liste der Sprints abrufen
Wenn Sie 'session.Merge (yourUnsavedObject) 'aufrufen, lädt NHibernate zuerst die Entität und anschließend Änderungen aus dem nicht gespeicherten Objekt. Dieser Prozess füllt dann OldValues. Dies verwendet Version 3.1. Ich glaube, frühere Versionen verwendeten SaveOrUpdateCopy(). –