Object Relational Mapping, Persistence and Caching for Java
Apache Cayenne is an open source persistence framework licensed under the Apache License, providing object-relational mapping (ORM) and remoting services. With a wealth of unique and powerful features, Cayenne can address a wide range of persistence needs. Cayenne seamlessly binds one or more database schemas directly to Java objects, managing atomic commit and rollbacks, SQL generation, joins, sequences, and more. With Cayenne's Remote Object Persistence, those Java objects can even be persisted out to clients via Web Services. Or, with native XML serialization, objects can be even further persisted to non-Java clients - such as an Ajax-capable browser.
Cayenne is designed to be easy to use, without sacrificing flexibility or design. To that end, Cayenne supports database reverse engineering and generation, as well as a Velocity-based class generation engine. All of these functions can be controlled directly through the CayenneModeler, a fully functional GUI tool. No cryptic XML or annotation based configuration is required! An entire database schema can be mapped directly to Java objects within minutes, all from the comfort of the GUI-based CayenneModeler.
Cayenne supports numerous other features, including caching, a complete object query syntax, relationship pre-fetching, on-demand object and relationship faulting, object inheritance, database auto-detection, and generic persisted objects. Most importantly, Cayenne can scale up or down to virtually any project size. With a mature, 100% open source framework, an energetic user community, and a track record of solid performance in high-volume environments, Cayenne is an exceptional choice for persistence services.
News
The Cayenne team welcomes Evgeny Ryabitskiy as a committer. In recognition of his work so far on Cayenne, he has been voted by the Project Management Committee to be given the rights to commit his work directly to the Cayenne
repository.
Evgeny lives in Russia, moving from Siberia to to the slightly (not much) warmer Moscow. He enjoys Yoga and a range of physical activities from dancing to martial arts. …
The Cayenne team would like to congratulate Olga (Ольга Ткачева) on her appointment as a committer. As recognition for her ongoing contributions over the last year, this status allows Olga to make changes to the source control repository of Cayenne directly.
Although Olga works under the guidance of Andrus at Objectstyle, all Apache appointments are made on the basis of individual skill and ability to contribute. …
Although many of you have been using Cayenne 3 in production for some time now, we figured it was about time we formally released 3.0 to let everyone else know how robust this branch is. Today we have the great pleasure in releasing Cayenne 3.0 beta 1. This means that only bug fixes will be applied and no more features or API changes will be introduced to the Cayenne library until after the final 3.0 release. Cayenne Modeler is not yet frozen, …
Another release on the journey to Cayenne 3.0! This milestone adds a plethora of new features including quoting of identifiers (useful for db column names with spaces), nested contexts in ROP, and EJBQL/SQLTemplate/ProcedureQuery queries now support the full range of configuration options available to native SelectQueries. The Modeler received new features such schema analysis on startup (which can prompt the user to create or upgrade the database schema) and support for EJBQL. Naturally, …
Cayenne Modeler
Cayenne is distributed with CayenneModeler - a complete GUI mapping tool that supports reverse-engineering of RDBMS schemas, working with database mappings and generation of Java source code for the persistent objects.
Persistent Java classes are generated and synchronized with the mapping using the Modeler or alternatively with an Ant task. A database SQL schema can be generated from the Modeler and also with simple API calls.

