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