Persistence Layer
Aus Salespoint
Freekmastah (Diskussion | Beiträge)
(Die Seite wurde neu angelegt: „Ein elementarer Punkt der Datenhaltung ist die Speicherung von transienten Daten auf einem persistenten Datenträger. Dies geschieht meist durch die Anbindung der...“)
Zum nächsten Versionsunterschied →
Version vom 02:24, 6. Apr. 2009
Ein elementarer Punkt der Datenhaltung ist die Speicherung von transienten Daten auf einem persistenten Datenträger. Dies geschieht meist durch die Anbindung der Applikation an eine Datenbank. Die Aufgabe des Persistence Layer's besteht daher auf Folgendem:
- Sicherung der Objektdaten in der Datenbank
- Wiederherstellung von Objekten aus der Datenbank
- Gewährleistung der Referentiellen Integrität
- Verwaltung von Datenbankverbindungen
Inhaltsverzeichnis |
Komponenten
Die folgende Abbildung zeigt den generellen Aufbau des Persistence Layer's in SalesPoint ab version 4.0, das die bisherige Serialisierung ablöst.
PersistenceManager
Der PersistenceManager ist die zentrale Komponente des PersistenceLayers. Er ist als Singleton implementiert und kann daher mit
PersistenceManager.getInstance();
angesprochen werden. Er Verwaltet die Datenbankverbindungen und sorgt für die Speicherung und Wiederherstellung von Objekten.
persist(Object obj)
Eine zentrale Funktion ist die Methode persist(Object obj). Sie speichert die wichtigen Daten des übergebenen Objektes und gibt einen eindeutigen Wert zurück bzw. null wenn das Objekt nicht gespeichert werden konnte. Rein theoretisch kann jedes Objekt übergeben werden... praktisch jedoch sollten diese Objekt gewisse Eigenschaften haben (siehe ...)
recover(Class class, Object ident)
recover(...) ist das Gegenstück zu persist(...). Es stellt gepeicherte Objekt wiederher. Dazu wird einerseits die Klasse des Objektes und seine eindeutiger Schlüssel benötigt. Die Methode gibt entweder das wiederhergestellte Objekt oder numm im Fehlerfall zurück.
=Listen
Der PersistenceManager stellt weiterhin Funktionen zur Listenverwaltung zur Verfügung die von persistenten Liste und Maps benutzt werden
ClassFieldMapper
Der ClassFieldMapper filtert die Daten von Objekten und gibt weitere Informationen zu Klassen. Er ist standardmässig als DefaultClassFieldMapper implementiert, welcher in der Lage ist Annotationen zu verarbeiten.
ClassNameEncoder
Der ClassNameEncoder