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

Last changed: Jun 08, 2009 16:36 by Ari Maniatis

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,...

Posted at 27 May @ 6:31 AM by Ari Maniatis | 0 comments

The Apache Cayenne project welcomes Andrey Razumovsky to the Cayenne PMC. Andrey will be a valuable member of the team which oversees the overall direction of Cayenne and is responsible for ensuring all releases meet the highest standards.

Andrey started creating business sofware back in 2004, while studying at St Petersburg Electrotechnical University. In 2008 he contributed to Cayenne as part of the Google Summer of Code and became a committer shortly after....

Posted at 08 May @ 12:07 AM by Ari Maniatis | 0 comments

Milestone 5 marks another set of major achievements for the Cayenne ORM library. A successful GSoC project resulted in lots of very useful improvements to the Cayenne Modeler. It is looking better than ever, with time saving features such as autocomplete, copy/paste, syntax colouring and much more. Cayenne core has had a host of bug fixes to ROP and EJBQL in particular, but also fixes and new features across many areas. Database reverse engineering is also considerably improved.

As always,...

Posted at 15 Dec @ 4:07 AM by Ari Maniatis | 0 comments
Last changed: May 11, 2009 19:11 by Andrus Adamchik

As work continues toward Cayenne 3.0, many new features have already been implemented and tested. Lifecycle callbacks and JPA are two of the most important, still undergoing development. More is left to be done, but some people are using early 3.0 builds in production already....

Posted at 08 Mar @ 7:38 AM by Ari Maniatis | 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.