Hallo,
man verwendet ja oft in einem Data Mapper eine Identity Map um bereits geladene Objekte aus der Datenbank zu speichern und bei erneutem Abrufen wieder aus der Map zu laden. Doch über die Finder kann die Identity Map im schlimmsten Fall ja alle Objekte aus einer Tabelle enthalten. Bei einer Tabelle mit tausenden Einträgen wäre das nicht so optimal. Wie soll man hier handeln?
Außerdem frage ich mich ob eine Identity Map in einem Data Mapper geeignet ist für Multi-User-Systeme.
Beispiel:
Ich lade eine Person über den Finder findById aus der Datenbank. Diese wird dann auch in der Identity Map abgelegt. Ich verändere nun den Benutzer und speichere ihn über den Data Mapper wieder in Datenbank. Das veränderte Objekt wird in der Identity Map abgegelegt und damit aktualisiert. Seit ich die Person per findById ermittelt und in der Identity Map abgelegt habe, bekomme ich ja keine Aktualisierung mehr von der Datenbank, d.h. ein andere Benutzer könnte die Person geändert haben. Die Veränderung bekomme ich ja so nicht mit. Macht die Identity Map daher Sinn oder sollte man diese hier nicht verwenden, bzw. was sollte man in einem solchen Fall tun?
Bin gespannt auf euere Antworten
Gruß S. Brosch
man verwendet ja oft in einem Data Mapper eine Identity Map um bereits geladene Objekte aus der Datenbank zu speichern und bei erneutem Abrufen wieder aus der Map zu laden. Doch über die Finder kann die Identity Map im schlimmsten Fall ja alle Objekte aus einer Tabelle enthalten. Bei einer Tabelle mit tausenden Einträgen wäre das nicht so optimal. Wie soll man hier handeln?
Außerdem frage ich mich ob eine Identity Map in einem Data Mapper geeignet ist für Multi-User-Systeme.
Beispiel:
Ich lade eine Person über den Finder findById aus der Datenbank. Diese wird dann auch in der Identity Map abgelegt. Ich verändere nun den Benutzer und speichere ihn über den Data Mapper wieder in Datenbank. Das veränderte Objekt wird in der Identity Map abgegelegt und damit aktualisiert. Seit ich die Person per findById ermittelt und in der Identity Map abgelegt habe, bekomme ich ja keine Aktualisierung mehr von der Datenbank, d.h. ein andere Benutzer könnte die Person geändert haben. Die Veränderung bekomme ich ja so nicht mit. Macht die Identity Map daher Sinn oder sollte man diese hier nicht verwenden, bzw. was sollte man in einem solchen Fall tun?
Bin gespannt auf euere Antworten
Gruß S. Brosch
Kommentar