freeBook
 
 

Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

Hibernate und das Java Persistence API

Hibernate und das Java Persistence API

von: Markus Kehle, Robert Hien

entwickler.press, 2006

ISBN: 9783935042963, 269 Seiten

Format: PDF, OL

Mac OSX,Windows PC,Mac OSX,Windows PC Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 26,00 EUR

  • Java-Persistenz mit Hibernate
    Selbstmotivation - FLOW - statt Streß oder Langeweile
    Oracle 10g
    Java-Entwicklung mit Eclipse 3.1 - Anwendungen, Plugins und Rich Clients
    Fortgeschrittene Programmierung mit Java 5 - Generics, Annotations, Concurrency und Reflection – mit allen wesentlichen Neuerungen des J2SE 5.0
    Java Server Faces - Ein Arbeitsbuch für die Praxis
    Business Engineering
    Java 5-Programmierhandbuch - Einstieg und professioneller Einsatz
  • Oracle PL/SQL kurz & gut
    Spring und Hibernate - Eine praxisbezogene Einführung
    SQL, kurz & gut
    JAXB 2.0 - Ein Programmiertutorial für die Java Architecture for XML Binding
    PHP 5 - Praxisbuch und Referenz
    Adobe Camera Raw
    Das JavaScript-Handbuch. Programmer's Choice - Einführung, Praxis und Referenz

     

     

 

Mehr zum Inhalt

Hibernate und das Java Persistence API


 

5 Komponenten, Assoziationen und Vererbung (S. 75-76)

Bis jetzt wurden die Grundfunktionen von Hibernate anhand des Objekts User gezeigt. Das Objekt kann in der Datenbank gesichert, aus der Datenbank geladen und auch wieder gelöscht werden. Des Weiteren haben Sie den Lebenszyklus persistenter Objekte kennen gelernt und haben gesehen, wie einfach persistente Objekte außerhalb einer Session verwendet werden können. In diesem Kapitel erläutern wir, wie Objekte als Komponenten oder als Assoziationen verbunden werden. Außerdem werden die Möglichkeiten gezeigt, wie ein Objektmodell mit Vererbung in der Datenbank gemappt werden kann.

5.1 Komponenten
Komponenten werden bei Hibernate auch als Value-Typen bezeichnet. Hibernate unterscheidet zwischen Entity- und Value-Typen. Entities haben einen Primärschlüssel und einen Lebenszyklus. Value-Typen hingegen haben keine Datenbankidentität, das heißt, sie haben keinen Primärschlüssel. Sie gehören zu einer Entity und ihr Zustand wird innerhalb der Tabelle der dazugehörigen Entity gesichert. Ausnahme sind Collections von Value-Typen, dazu mehr im nächsten Kapitel, welches sich ausschließlich mit Collections befasst. Typische Value-Typen sind einfache Objekte vom Typ String. Die Lebensdauer dieser Objekte ist immer an den Lebenszyklus der entsprechenden Entity gebunden. Es ist ebenso möglich, eigene Klassen als Value-Typen von Hibernate behandeln zu lassen, dazu mehr im nächsten Abschnitt.

Die Klasse User im Beispielprojekt enthält noch keine Informationen über die Anschrift eines Benutzers. Dazu soll es die Klasse Address geben, die als Komponente an den User angebunden werden soll, wie es in Abbildung 5.1 zu sehen ist. Normalerweise wird eine Tabelle auf eine Klasse abgebildet. In der objektorientieren Programmierung ist es jedoch oft wünschenswert, eine Tabelle auf mehrere Klassen abzubilden, um damit ein feingranulares Klassenmodell entwerfen zu können. Komponenten ermöglichen die Abbildung mehrerer Klassen auf eine Tabelle.

Die Abbildung zeigt eine Komposition zwischen den Objekten User und Address. Eine Komposition ist eine strengere Form der Aggregation. Die Lebensdauer eines Objektes Address ist dabei an das Objekt User gebunden, eine Address wird also immer mit oder nach dem User erzeugt und vor oder mit dem User zerstört. Die Komposition wird in der UML1 mit einer gefüllten Raute dargestellt, die Aggregation mit einer leeren Raute. Die Aggregation beschreibt eine schwache Beziehung zwischen Objekten. Das Objekt ist ein Teil eines anderen Objekts, kann aber im Gegensatz zur Komposition auch alleine existieren. In der Implementierung mit Java macht das keinen Unterschied, aber das Objekt Address ist in diesem Fall für Hibernate ein Value-Typ und hat keinen eindeutigen Bezeichner (Primärschlüssel).