Wie unterstützen Sie optimistische/pessimistische Nebenläufigkeit mit NHibernate?Wie gehen Sie mit Gleichzeitigkeit in NHibernate um?
Antwort
NHibernate unterstützt standardmäßig optimistische Parallelität. Pessimistische Nebenläufigkeit kann andererseits durch die ISession.Lock()
Methode erreicht werden.
Diese Fragen werden im Detail in this document diskutiert.
NHibernate unterstützt zwei Arten optimistischer Parallelität.
Sie können entweder schmutzige Felder überprüfen lassen, indem Sie das Attribut "classic" in Ihren Mapping-Dateien mit dem Attribut "optimistic-lock = dirty" versehen oder "optimistic-lock = version" verwenden (was auch der Standardwert ist). . Wenn Sie die Version verwenden, müssen Sie in Ihrer Zuordnungsdatei ein Element "Version" angeben, das einem Feld in Ihrer Datenbank zugeordnet ist.
Version kann vom Typ Int64, Int32, Int16, Ticks, Zeitstempel sein, oder Timespan und wird beim Speichern automatisch erhöht. Weitere Informationen finden Sie unter Chapter 5 in der NHibernate-Dokumentation.
Kapitel 5 der docs jetzt hier: http://nhforge.org /doc/nh/de/index.html#mapping –
Sie können die Versionsnummern auch "nur" manuell vergleichen (vorausgesetzt, Sie haben Ihrer Entität eine Version-Eigenschaft hinzugefügt).
Klar Optimistisch ist die einzige vernünftige Option. Manchmal müssen wir natürlich mit verrückten Szenarien umgehen ...
- 1. Wie gehen Sie mit kleinen Datensätzen um?
- 2. Wie gehen Sie mit Benutzereinstellungen um?
- 3. Wie gehen Sie mit Laufzeitdatentypen um?
- 4. Wie gehen Sie mit E-Mails um?
- 5. Wie gehen Sie mit DDD und EF4 um?
- 6. Wie gehen Sie mit Assoziationen zwischen Aggregaten in DDD um?
- 7. Wie gehen Sie mit der Zeitzonen-Differenzberechnung in PHP um?
- 8. Wie gehen Sie mit "Super" Generika in Java um?
- 9. Wie gehen Sie mit Änderungsverfolgung in MVVM um?
- 10. Wie gehen Sie mit SSL in der Entwicklung um?
- 11. Wie gehen Sie mit extrem großen Werten in Python um?
- 12. Wie gehen Sie in Spring MVC mit Ajax-Anfragen um?
- 13. Wie gehen Sie mit Dateibesitz in Git um?
- 14. Wie gehen Sie mit Polymorphie in einer Datenbank um?
- 15. Wie gehen Sie mit Transport-Level-Fehlern in SqlConnection um?
- 16. Wie gehen Sie mit Präzisionsproblemen in Matlab um?
- 17. Wie gehen Sie mit fehlenden Daten mit numpy/scipy um?
- 18. Wie gehen Sie am besten mit Tests mit Daten um?
- 19. Wie gehen Sie mit Audit-Logging mit SSRS um?
- 20. Wie gehen Prozesse mit Signalen um?
- 21. Wie gehen Sie mit Potrait- und Landschaftsansichten um?
- 22. Wie gehen Sie mit der internen Systementwicklung um?
- 23. Wie gehen Sie mit den fetchxml-Ergebnisdaten um?
- 24. Wie gehen Sie mit der Planung/Deadlines um Programmierer herum?
- 25. Wie gehen Sie mit Strings um, die strukturiert sind?
- 26. Wie gehen Sie mit "Viele Namen für 1 Person" um?
- 27. Wie gehen Sie mit Fehlern von AJAX-Anrufen um?
- 28. Wie gehen Sie mit großen Wenn-Bedingungen um?
- 29. Wie gehen Sie mit dem Entwicklerzugriff auf Windows-Server um?
- 30. Wie gehen Sie mit dem Datenungleichgewicht bei SVM um?
Danke Jon für die schnelle Antwort :-) –
Transaktionen und Concurrency Dokumente jetzt hier: http://nhforge.org/doc/nh/en/index .html # Transaktionen –
Docs jetzt hier: http://nhibernate.info/doc/nh/en/index.html#transactions –