Apache Cayenne
# Apache Cayenne

Apache Cayenne ist ein freies Persistenz- und ORM-Framework für die Programmiersprache Java.

## Fähigkeiten

Wie die meisten anderen ORM-Frameworks bildet Apache Cayenne das Datenbankschema direkt auf Java-Klassen ab, und generiert dazu SQL-Statements zur Laufzeit. Ebenfalls unterstützt Apache Cayenne Transaktionen, Joins, Sequenzen etc.
Darüber hinaus können mit der Remote Object Persistence von Apache Cayenne auch Java-Objekte mittels Web Services auf anderen Java-Clients persistiert werden. Damit unterscheidet sich Apache Cayenne von den meisten anderen ORM-Frameworks. Ebenso unterstützt Apache Cayenne die Serialisierung mittels XML.
Apache Cayenne unterstützt mittels Reverse Engineering sowohl die Erzeugung von Datenbankschemata aus Java-Klassen, als auch die Generierung von Java-Klassen aus Datenbankschemata mittels Apache Velocity. Diese Funktionalitäten können mithilfe des CayenneModeler, einer Benutzeroberfläche, ohne Konfiguration in XML-Dateien mittels derer Annotationen umgesetzt werden. Ganze Datenbankschemata können somit einfach und direkt auf Java-Objekte gemappt werden.
Apache Cayenne unterstützt weiters wie die meisten anderen ORM-Frameworks eine Abfragesprache auf Objektebene, Caching, vorausschauendes Holen von Abhängigkeitsbäumen, sowie Validierung von Objekten und ihren Abhängigkeiten. Darüber hinaus noch Objektvererbungen, automatische Erkennung der Datenbank, sowie die Persistierung generischer Objekte.

## Geschichte

Cayenne wurde von der Firma Objectstyle unter Andrus Adamchik gestartet. Es wurde ab dem ersten Release im Juli 2002 unter der Apache-Lizenz veröffentlicht. Anfang 2006 zog das Projekt von Objectstyle zur Apache Software Foundation um und wurde im Dezember 2006 eines der Top-Level-Projekte von Apache.