Sitzungsobjekte

Es gibt acht Objekte auf Sitzungsebene:

Es gibt nur eine einzige Kopie eines bestimmten Objekts (auf der Basis der eindeutigen Identität) in der Sitzung. Alle Verweise nehmen auf diese einzige Kopie Bezug. Für jedes Sitzungsobjekt gibt es Methoden, um ein Sitzungsobjekt nach Name, Datenbank-ID oder URI abzurufen oder nach ihm zu suchen. Sitzungsobjekte können auch durch Aufrufen von getter-Methoden abgerufen werden, über die von anderen Objekten aus auf sie verwiesen wird. Angenommen, ein Objekt RAMAsset hat die Eigner-ID kjones; wird getOwner() für das Objekt aufgerufen, wird das Objekt kjones RAMUser in die Sitzung abgerufen, sofern dies nicht bereits erfolgt ist.

Es gibt zwei Möglichkeiten, um Änderungen, die an Sitzungsobjekten vorgenommen wurden, festzuschreiben. Die API RAMSession.putAssets(IProgressMonitor) schreibt alle Änderungen fest, die lokal an Ihren Assetobjekten in der Warteschlange durchgeführt wurden. Mithilfe von RAMSession.put(IRAMSessionObject, IProgressMonitor) können Sie die Änderungen in einem einzigen Sitzungsobjekt (sessionObject) festschreiben.

Für RAMSession gibt es Methoden, um neue Instanzen eines beliebigen Sitzungsobjekts zu erstellen. Nachdem eine Methode create aufgerufen wurde, füllen Sie das Objekt und schreiben Sie die Änderungen an ihm fest, um das Objekt auf dem Server zu erstellen. Siehe Neues Asset erstellen, Neue Community erstellen, Neuen Assettyp erstellen, Neues Kategorieschema erstellen, Neues Assetattribut erstellen und Benutzer registrieren.

Wenn Sitzungsobjekte vom Server gelöscht werden, wird das Sitzungsobjekt mit der Methode RAMSessionObject.setAction(RAMAction.DELETE) zum Löschen markiert und mit der Methode RAMSession.put() gelöscht. Siehe Asset löschen, Community löschen, Assettyp löschen, Kategorieschema löschen, Beziehungstyp löschen und Assetattribut löschen. Benutzer können nicht vom Server gelöscht werden.

Um ein Objekt aus dem Sitzungscache zu entfernen und alle Änderungen an dem Objekt zu löschen, verwenden Sie die API RAMSession.remove(IRAMSessionObject).

Anmerkung: Das Objekt RAMSession ist nicht threadsicher und es ist Ihre Aufgabe, Threadsicherheit sicherzustellen. Nachdem die Methode RAMSession.release() aufgerufen wurde, darf das Objekt RAMSession nicht wiederverwendet werden.

Feedback