Zum Inhalt springen

„Benutzer:Cvk/Baustelle/Java Persistence API“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Inhalt gelöscht Inhalt hinzugefügt
AZ: Die Seite wurde neu angelegt.
 
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
Die Java Persistence API wurde ursprünglich als Projekt der [[Java Community Process|JSR]] 220 Expert Group entwickelt.
Die Java Persistence API wurde ursprünglich als Projekt der [[Java Community Process|JSR]] 220 Expert Group entwickelt.


== Konzeption ==
Java Persistence besteht aus drei Komponenten:
* Die API, definiert im javax.persistence Package
* Die [[Java Persistence Query Language]]
* Objektrelationale Metadaten


Neben der API, welche im Package ''javax.persistence'' definiert ist, besteht die Java Persistence aus folgenden Komponenten:
== Persistence Entity ==
Eine Persistence Entity (Entität) ist eine einfache Java-Klasse, die üblicherweise eine einzelne Tabelle in der relationalen Datenbank abbildet. Instanzen dieser Klasse entsprechen hierbei den Zeilen der Tabelle. Die Beziehungen zwischen den einzelnen Tabellen werden über objektrelationale Metadaten ausgedrückt. Diese sind entweder als [[Java Annotation]]s angelegt, oder in einer separaten [[XML]]-Datei abgelegt.


== Die Java Persistence Query Language ==
=== Persistence Entity ===
Eine ''Persistence Entity'' ist eine einfache Java-Klasse, die üblicherweise eine einzelne Tabelle in der relationalen Datenbank abbildet. Instanzen dieser Klasse entsprechen hierbei den Zeilen der Tabelle.
Die Java Persistence Query Language (JPQL) wird genutzt, um Abfragen bezüglich der in der Datenbank gespeicherten Entitäten durchzuführen. Diese Abfragen ähneln syntaktisch [[SQL]]-Abfragen, beziehen sich aber auf Entitäten statt auf Datenbanktabellen.


=== Objektrelationale Metadaten ===
== Beziehung zwischen der Java Persistence API und Enterprise JavaBeans ==
Die Beziehungen zwischen den einzelnen Tabellen werden über objektrelationale Metadaten ausgedrückt. Diese sind entweder als Java ''Annotations'' angelegt, oder in einer separaten [[XML]]-Datei abgelegt.
Die Java Persistence API wurde als Teil der [[Enterprise JavaBean]] 3.0 Spezifikation definiert. Diese ist Teil der JaveEE 5 Plattform. Für die Verwendug werden jedoch keine EJB-Container, oder ein entsprechender Java EE Anwendungsserver benötigt. Künftige Versionen sollen als separater Java Community Process außerhalb der EJB-Spezifikation definiert werden.


== Beziehung zwischen der Java Persistence API und der Service Data Object API ==
=== Die Java Persistence Query Language ===
Die Java Persistence Query Language (''JPQL'') wird genutzt, um Abfragen bezüglich der in der Datenbank gespeicherten Entitäten durchzuführen. Diese Abfragen ähneln syntaktisch [[SQL]]-Abfragen, beziehen sich aber auf Entitäten statt auf Datenbanktabellen.
Die Java Persistence API wurde für die relationale Persistenz relativ einfacher Objekte entwickelt. Viele Konzepte wurden dabei dem [[ORM]] Tool [[Hibernate]] entliehen. Die Service Data Object API eignet sich hingegen hauptsächlich auf die Abbildung komplexer Daten in verschiedenen Formaten und Programmiersprachen für die Verwendung in [[Serviceorientierte Architektur|Serviceorientierten Architekturen]].


== Gründe für die Entwicklung der Java Persistence API ==
== Java Persistence im Kontext ==

Viele Javaentwickler benutzen bereits Open Source Frameworks, da sich [[Entity Bean]]s durch ihren hohen Ressourcenverbrauch, ihre Komplexität und die Notwendigkeit, auf einem Java EE Anwendungsserver zu laufen als zu sperrig herausgestellt haben. Viele Eigenschaften dieser Open Source Frameworks flossen in die Entwicklung der Java Persistence API ein. Hibernate und [[TopLink]] bilden nun Implementierungen der Java Persistence API.
Viele Javaentwickler benutzten bereits zuvor Open Source Frameworks, da sich die in der [[Enterprise JavaBean]] 2.1 definierten [[Entity Bean]]s durch ihren hohen Ressourcenverbrauch, ihre Komplexität, sowie die Notwendigkeit, auf einem Java EE Anwendungsserver zu laufen, als zu aufwändig herausgestellt haben. Viele Eigenschaften der bereits etablierten Open Source Frameworks flossen in die Entwicklung der Java Persistence API ein. [[Hibernate]] und [[TopLink]] bilden nun Implementierungen der Java Persistence API.

Java Persistence wurde als Teil der [[Enterprise JavaBean]] 3.0 Spezifikation definiert und stellt somit einen Nachfolger der [[Entity Beans]] dar. Obwohl die EJB 3.0 Spezifikation ein Teil der Java EE 5 Plattform ist, wird für die Verwendung kein EJB-Container oder ein entsprechender Java EE Anwendungsserver benötigt. Künftige Versionen sollen daher als separater Java Community Process außerhalb der EJB-Spezifikation definiert werden.

Die Java Persistence API wurde für die relationale Persistenz relativ einfacher Objekte entwickelt. Im Vergleich dazu eignet sich die Service Data Object (SDO) API hauptsächlich auf die Abbildung komplexer Daten in verschiedenen Formaten und Programmiersprachen für die Verwendung in [[Serviceorientierte Architektur|Serviceorientierten Architekturen]] - beide Konzepte ergänzen sich also.


== Weblinks ==
== Weblinks ==
* [[http://java.sun.com/javaee/technologies/entapps/persistence.jsp Webseite zur JPA bei Sun (englisch)]]
* [http://java.sun.com/javaee/technologies/entapps/persistence.jsp Webseite zur JPA bei Sun (englisch)]
* [[http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html Endgültige Version der EJB3 Spezifikation]]
* [http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html Endgültige Version der EJB3 Spezifikation]


[[en:Java Persistence API]]
[[en:Java Persistence API]]

Version vom 18. September 2007, 09:51 Uhr

Die Java Persistence API, auch JPA, ist ein Java Framework das die Verwaltung relationaler Daten in Java Platform, Standard Edition und Java Platform, Enterprise Edition Anwendungen ermöglicht.

Die Java Persistence API wurde ursprünglich als Projekt der JSR 220 Expert Group entwickelt.

Konzeption

Neben der API, welche im Package javax.persistence definiert ist, besteht die Java Persistence aus folgenden Komponenten:

Persistence Entity

Eine Persistence Entity ist eine einfache Java-Klasse, die üblicherweise eine einzelne Tabelle in der relationalen Datenbank abbildet. Instanzen dieser Klasse entsprechen hierbei den Zeilen der Tabelle.

Objektrelationale Metadaten

Die Beziehungen zwischen den einzelnen Tabellen werden über objektrelationale Metadaten ausgedrückt. Diese sind entweder als Java Annotations angelegt, oder in einer separaten XML-Datei abgelegt.

Die Java Persistence Query Language

Die Java Persistence Query Language (JPQL) wird genutzt, um Abfragen bezüglich der in der Datenbank gespeicherten Entitäten durchzuführen. Diese Abfragen ähneln syntaktisch SQL-Abfragen, beziehen sich aber auf Entitäten statt auf Datenbanktabellen.

Java Persistence im Kontext

Viele Javaentwickler benutzten bereits zuvor Open Source Frameworks, da sich die in der Enterprise JavaBean 2.1 definierten Entity Beans durch ihren hohen Ressourcenverbrauch, ihre Komplexität, sowie die Notwendigkeit, auf einem Java EE Anwendungsserver zu laufen, als zu aufwändig herausgestellt haben. Viele Eigenschaften der bereits etablierten Open Source Frameworks flossen in die Entwicklung der Java Persistence API ein. Hibernate und TopLink bilden nun Implementierungen der Java Persistence API.

Java Persistence wurde als Teil der Enterprise JavaBean 3.0 Spezifikation definiert und stellt somit einen Nachfolger der Entity Beans dar. Obwohl die EJB 3.0 Spezifikation ein Teil der Java EE 5 Plattform ist, wird für die Verwendung kein EJB-Container oder ein entsprechender Java EE Anwendungsserver benötigt. Künftige Versionen sollen daher als separater Java Community Process außerhalb der EJB-Spezifikation definiert werden.

Die Java Persistence API wurde für die relationale Persistenz relativ einfacher Objekte entwickelt. Im Vergleich dazu eignet sich die Service Data Object (SDO) API hauptsächlich auf die Abbildung komplexer Daten in verschiedenen Formaten und Programmiersprachen für die Verwendung in Serviceorientierten Architekturen - beide Konzepte ergänzen sich also.