9.4 Komfortable Alternative: Persistente Klassen 

Falls Sie in einer anderen objektorientierten Programmiersprache bereits Erfahrung mit der Entwicklung betriebswirtschaftlicher Anwendungen sammeln konnten, ist Ihnen vielleicht schon einmal ein objektrelationaler Persistenzdienst begegnet. Bekannte Beispiele hierfür sind die Persistenz-Frameworks Hibernate und JPA in der Java-Welt. Solche Dienste haben die Aufgabe, dem Entwickler die Programmierung des Aspektes der Persistenz zu erleichtern, indem sie ihm komplizierte und wiederkehrende Programmieraufgaben abnehmen – Datenbankzugriffe zum Laden und Speichern, Verwalten der noch vorgemerkten und bereits ausgeführten Datenbankzugriffe, Verwalten eines Caches im Hauptspeicher und nicht zuletzt die Abbildung zwischen Datenbanktabellen einerseits und Objektinstanzen in der objekt-orientierten Programmierung andererseits.
Falls Sie aus anderen Umgebungen mit solchen Diensten vertraut sein sollten, wird es Sie freuen, dass es auch in der ABAP-Umgebung eine Entsprechung gibt: die persistenten Klassen (vor Release 7.40 besser unter dem Namen Object Services bekannt). Es würde den Rahmen dieses einführenden Buches deutlich überschreiten, detailliert auf sie einzugehen, daher erwähnen wir an dieser Stelle nur die wichtigsten Merkmale.
Für einfache Datenbankzugriffe lohnt es sich nicht, die persistenten Klassen zu bemühen. Doch wenn Sie Datenbankzugriffe in anspruchsvollen Szenarien entwickeln möchten, bei denen aufgrund großer Datenmengen alle Register der professionellen ABAP-Datenbankprogrammierung gezogen werden müssen, wird die manuelle Programmierung äußerst kompliziert. Hier unterstützen die persistenten Klassen Sie, indem sie Ihnen die schwierigen technischen Querschnittsaspekte wie Caching, Bündeln von Datenbank-Updates, Nutzung der Verbuchung etc. abnehmen und es Ihnen erlauben, sich auf die betriebswirtschaftliche Funktionalität zu konzentrieren. Es kann daher lohnend sein, den Einsatz persistenter Klassen zu prüfen.
Die persistenten Klassen bzw. Object Services umfassen einen Persistenzdienst zur Verwaltung von auf der Datenbank gespeicherten Objekten, einen Transaktionsdienst, der erweiterte Möglichkeiten zur Steuerung von Transaktionen anbietet (geschachtelte und verkettete Transaktionen), und einen Query-Dienst zum Suchen und Laden persistenter Objekte.