11.07.2015 Aufrufe

2 Grundlagen Persistenzframeworks

2 Grundlagen Persistenzframeworks

2 Grundlagen Persistenzframeworks

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Kapitel 4: Hibernate und weitere Alternativen4 Hibernate und weitere Alternativen4.1 Hibernate und JPADas Open Source Persistenzframework Hibernate für JDBC-kompatible, relationaleDBMS liegt derzeit in der dritten Generation vor. Seit Version 3.2 ist es kompatibelzum Java Persistence API-Standard (JPA), der seit der Java Platform Enterprise Edition5.0 Schnittstellen zu <strong>Persistenzframeworks</strong> spezifiziert. Hibernate und JPA sind sowohlfür den Einsatz in einem Enterprise Java Beans-Container als auch in der Java PlatformStandard Edition geeignet [MW08]. Die Betrachtungen im Folgenden beziehen sich aufdie charakteristischen, JPA-konformen Funktionalitäten von Hibernate.Die Spezifikation des objektrelationalen Mappings kann bei Hibernate über XML-Dateien oder aussagekräftiger über Annotationen in den gemappten Klassen erfolgen.Eine derartige Klasse ist mit der Annotation @Entity zu versehen und hat einenPrimärschlüssel zu besitzen, der mit @Id markiert ist. Die Strategie für dessenWertzuweisung legt @GeneratedValue(Strategy=GenerationType.IDENTITY)fest. Neben IDENTITY zur Generierung des Wertes über die Datenbank stehen laut JPATABLE, wobei der letzte Wert in einer gesonderten Tabelle abgespeichert wird, undSEQUENCE, das nicht für alle DBMS geeignet ist, zur Verfügung. Hibernate beherrschtzudem weitere Strategien, wie uuid.hex oder guid. Attribute, die als Spalten gemapptwerden sollen, werden mit @Column annotiert. Zu beachten ist, entweder alleAnnotationen inkl. @Id vor die Klassenattribute selbst oder konsequent vor derenGetter-Funktionen zu positionieren. Pflichtfelder erhalten dabei nullable=false undFelder, für die eine Eindeutigkeit gewährleistet werden soll, unique=true. Nebenweiteren @Column-Attributen ist vor allem für das Mappen von String-Feldern legthvon Interesse. Das Mapping primitiver Datentypen in korrespondierende Datenbank-Feldtypen wird implizit vorgenommen. Weitere spaltenbezogene Annotationen sindz. B. @Temporal für Zeitwerte und @Basic(fetch=FetchType.LAZY), das lautJPA ein spätes, bedarfsweises Laden des annotierten Attributes bewirken soll, jedochvon Hibernate nicht umgesetzt wird. Zur Abbildung von 1:1-Assoziationen steht dieAnnotation @OneToOne zur Verfügung, für 1:n-Beziehungen @OneToMany. Letzteressollte zu einem mengenwertigen Attribut stehen, wobei dafür eine Set-Kollektion wieHashSet empfehlenswert ist [He07, S. 191]. Alternativ kann man indizierte Map-19

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!