JPA Annotation

Objekt-Relationales Mapping

Im Objekt-Domänenmodell arbeitet man mit Klassen, in Datenbanken mit Tabellen. Beides sieht auf den ersten Blick recht ähnlich aus. Es sollte also einfach sein, Repräsentationen vom einen in das andere Format zu konvertieren. Im folgenden Artikel werden einige grundlegenden Aspekte des O-R Mappings (ORM) beleuchtet.

Der Bedarf für das Mapping entsteht aus der Tatsache, dass beim genaueren Hinsehen doch einige Unterschiede zwischen relationalen Datenmodell und Objektmodell bestehen:

  • Applikationen sollten mit Fokus auf das Domänenmodell entwickelt werden. Alle Operationen sollten somit auch gegen das Domänenodell programmiert werden, ohne sich um die Details der Persistierung kümmern zum müssen.
  • Mapping sollte nur von Personen gemacht werden, die mit dem Thema erträumt sind. ORM befreit somit die Entwickler nicht von der Kenntnis bezüglich der Ablage der Informationen, befreit sie aber vom Schreiben von vielem redundanten, technischen Code.
  • Die Lösung zum Persistieren der Daten sollte das Domänenmodell nicht wesentlich beeinflussen. Es sollte nicht nötig sein, für die Persistenz spezielle technische Klassen zu beerben oder Interfaces zu importieren.
  • Unterstützung bestehender Datenank-Schemata. Sehr oft muss auf bestehenden Daten eine neue Anwendung erstellt werden. Die Unterstützung bestehender Datenstrukturen ist somit einer der wichtigsten Use-Cases für ein ORM.
  • Damit sich Enterprise-Entwickler um die Lösung fachlicher Probleme kümmern können, sollte das Persistenz-Modell keinen grossen Overhead aufzwängen, trotzdem aber alle benötigten Funktionen bereitstellen.
  • Lokal, aber trotzdem mobil. Persistente Objekte müssen in verschiedenen Layern genutzt werden können, ohne dass diese als komplexe Remote-Objekte definiert sind.
  • Standard-Bibliothek mit auswechselbaren Implementationen. Viele Unternehmen wünschen sich kein Lock-In auf einzelne Hersteller. Die Verwendung einer standardisierten API ermöglicht einen einfachen Wechsel der Implementation, falls die ursprünglich gewählte den Anforderungen nicht mehr entspricht oder diese nicht weiter entwickelt wird.

Zwei Eigenschaften stellen besondere Anforderungen an das OR-Mapping:

  • Beziehungen zwischen Objekten / Entitäten. Diese können auf unterschiedlichste Arten abgebildet werden. Wo beispielsweise ein Foreign-Key bei einer 1:1-Beziehung abgelegt wird, hat immensen Einfluss auf die Navigation im Objekt-Modell.
  • Vererbung im Objektbaum. Diese kann wiederum unterschiedlich in Enittäten abgebildet werden..

JPA ist ein solches Framework zum Mapping von relationalen Datenbanken und Java Objekten (Objekt-Relationales Mapping).

{{ message }}

{{ 'Comments are closed.' | trans }}