Apache Cayenne Website > Index

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.

Cayenne team is in the process of building a spec-compliant open source JPA Provider.

News

Cayenne 3 is advancing quickly. This latest milestone also fixes a range of bugs and is recommended for all users of previous Cayenne 3 milestones. As before, Cayenne 2.x should still be used in preference if you want a stable API with a proven track record.

Some of the exciting changes in this milestone of Cayenne include support for outer joins and split expressions,...

Posted at 29 May @ 9:07 AM by Ari Maniatis | 0 comments

The Cayenne team is pleased to present the third milestone of Cayenne 3. This is a development branch of Cayenne and still undergoing significant changes. A number of developers are using it in production systems, however if you want the most stable and tested version of Cayenne you should use version 1.x or 2.x which have a proven track record and are widely used in deployment.

Release Download Link

This milestone release adds some exciting new features,...

Posted at 04 Feb @ 4:15 AM by Ari Maniatis | 0 comments

Cayenne team is glad to announce a second milestone of Cayenne 3.0. It contains many new features, such as full EJBQL syntax (delete, update, select, aggregate queries, subqueries, etc.), much improved lifecycle callbacks (no need to wrap the DataContext or enable callbacks explicitly. Modeler callbacks support is coming in M3), to-many relationships mapped as sets and maps (with Modeler support), CayenneModeler search function, adapter for SQLite, and much more....

Posted at 11 Nov @ 4:59 AM by Andrus Adamchik | 0 comments
Last changed: Oct 14, 2007 15:06 by Andrus Adamchik

Cayenne team is glad to announce a new release of Cayenne 2.0 and 1.2. Both 2.0 and 1.2 are Cayenne stable branches so there are no new features. Still the release includes a number of important bug fixes. So it is a recommended upgrade for the current users. As always there is a patch-level compatibility between 1.2.4 and 2.0.4....

Posted at 12 Oct @ 11:06 AM by Andrus Adamchik | 0 comments

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.