JPA-Glossar
Die Java Persistence API (JPA) wurde im Zuge von EJB 3.0 spezifiziert. Da JPA sowohl im Java-EE- als auch im Java-SE-Umfeld einsetzbar ist, wurde sie in eine eigene Spezifikation ausgegliedert, d.h. Persistenz ist nicht mehr direkter Bestandteil von EJB. Wir haben diesem Umstand mit unserem JPA-Glossar Rechnung getragen. Es entzaubert und erklärt die vielen Fachbegriffe wie Fetching-Strategien, Detached Object, Multi-table Mapping etc. und erklärt, was hinter den Begrifflichkeiten steckt. Lesen Sie auch unser Buch EJB 3 komplett, in dem wir die Themen ausführlich erläutern.
Wenn Sie Begriffe vermissen, die Ihrer Meinung nach erklärt gehören oder falls Sie Fragen haben, mailen Sie uns doch einfach unter
Index
A·B·C·D·E·F·G·H·I·J·K·L·M·N·O·P·Q·R·S·T·U·V·W·X·Y·Z·Alle
| M nach oben | |
| Managed Object | Bezeichnet eine vom EntityManager überwachte Persistent Entity. “Überwacht” bezieht sich hierbei auf die Steuerung des Persistenzverhaltens der Entität. |
| Meta- Annotationen | Meta-Annotationen sind dynamische Spracherweiterungen der Programmiersprache Java. Sie sind mit dem JDK 1.5 eingeführt worden. Meta-Annotationen ermöglichen es, direkt im Java-Code Meta-Informationen unterzubringen, die sowohl zur Compile- als auch zur Laufzeit ausgewertet werden können. Diese Informationen können u.a. dafür genutzt werden, um Code zu generieren oder das Laufzeitverhalten eines Objektes bzw. einer Komponente zu steuern. |
| Multi-table Mapping | Das Multi-table Mapping bezeichnet die Fähigkeit einer Persistent Entity, auf mehrere physikalische Datenbanktabellen gemappt zu werden. In JPA ist eine Persistent Entity kein “stumpfes” 1:1 Mapping einer Tabelle, sondern vielmehr die technische Hülle für ein logisches Geschäftsobjekt, dessen Daten physikalisch über mehrere Tabellen verteilt sein können. Es wird innerhalb der Persistent Entity über Meta-Annotationen angegeben, aus welchen Tabellen/Feldern die entsprechenden Daten stammen. Der EntityManager sorgt dafür, das relationale Modell zur Laufzeit aufzulösen und die Daten in die Persistent Entity zu übertragen (siehe Abbildung).
Logisches Geschäftsobjekt (Persistent Entity), bestehend aus drei Tabellen @Entity @Table(name = “KUNDE”) @SecondaryTables({ @SecondaryTable(name = “ADRESSE”) @SecondaryTable(name = “TYP”) }) public class Kunde implements java.io.Serializable { private int id; // Aus Tabelle “KUNDE” private String name; // Aus Tabelle “KUNDE” private String vorname ; // Aus Sekundärtabelle “ADRESSE” private String strasse; … // Aus der Haupttabelle “Kunde” @Column(name = “NAME”) public String getName() { return name; } … // Aus der Sekundärtabelle “ADRESSE” @Column(name = “STRASSE”, table = “ADRESSE”) public String getStrasse() { return strasse; } … // Per Default wird, wenn kein @Column // angeben ist, davon ausgegangen, // dass der Spaltenname gleich dem // Attributnamen ist. public String getVorname() { return vorname ; } } |
Copyright © 2008–2009 Holisticon AG
Dieses Glossar darf in vollständiger Form und unverändert jederzeit kopiert und kostenlos weitergegeben werden. Der Hinweis auf die Originalquelle http://www.holisticon.de/cms/JPAGlossar/Startseite muss ebenso wie dieser Copyright-Hinweis stets angegeben werden. Es ist nicht zulässig, das Glossar kommerziell zu vertreiben, gegen Entgelt weiterzugeben oder Inhalte zu verändern. Im Rahmen nicht-kommerzieller Verwendungen, beispielsweise Diplomarbeiten, darf das Glossar gerne übernommen werden. Die Verwendung in kommerziellen Zusammenhängen, beispielsweise in öffentlichen oder internen Schulungen, firmeninternen Netzwerken, Publikationen, Produkten etc. ist prinzipiell gestattet, wenn eine entsprechende Meldung an gesendet wird. Die Weitergabe ist sowohl in elektronischer als auch gedruckter Form zulässig. Im Internet zugängliche Kopien sind ebenfalls zu melden.
Hinweis zu den Urhebern der dargestellten Abbildungen: Alle hier wiedergegebenen Grafiken wurden von uns erstellt und sind NICHT von Dritten bezogen!
Nehmen Sie Kontakt mit uns auf!
Ihre Ansprechpartner:
| Stefan M. Heldt | Oliver Ihns |
| Telefon: +49 40 5074 2722 |