Apache OpenJPA
# Apache OpenJPA

Apache OpenJPA ist eine freie Lösung für die Persistenz von Java Objekten in relationalen Datenbanken. OpenJPA implementiert ab der Version 3.0.0 den Großteil der Jakarta Persistence API 2.2 Spezifikation. Der ausstehende Rest ist für das nächste Release 3.2.3 geplant, an dem allerdings nicht aktiv gearbeitet wird.

Die Hauptaufgabe der OpenJPA ist die Objektrelationale Abbildung (O-R-Mapping, kurz ORM). Dies ermöglicht es, gewöhnliche Objekte mit Attributen und Methoden (im Java-Bereich POJOs genannt) in relationalen Datenbanken zu speichern und aus entsprechenden Datensätzen wiederum Objekte zu erzeugen. Beziehungen zwischen Objekten werden auf entsprechende Datenbank-Relationen abgebildet.

## Geschichte

Die Java Data Objects (JDO) Implementierung Kodo wurde ursprünglich von SolarMetric 2001 entwickelt. SolarMetric wurde 2005 von BEA Systems gekauft; Kodo wurde von BEA erweitert um sowohl die JDO Spezifikation, als auch die Jakarta Persistence API (JSR 220) Spezifikation zu unterstützen. 2006 spendete BEA einen großen Teil des Kodo Sourcecodes der Apache Software Foundation als OpenJPA.

BEA selbst nutzt OpenJPA als Kern der Persistenz-Engine des BEA Weblogic Anwendungsservers. Weiters wird OpenJPA auch im IBM WebSphere und Apache Geronimo Anwendungsserver verwendet. Mai 2007 wurde OpenJPA ein Top-Level Projekt der Apache Software Foundation und hat auch hinsichtlich der Jakarta Persistence API Implementierung Suns Technology Compatibility Kit bestanden.

