[maven-release-plugin] copy for tag 4.1.M2
[maven-release-plugin] prepare release 4.1.M2
60 files changed
tree: 79ec30f83c4b77766e8fcc815c4fd120fb9051b0
  1. assembly/
  2. build-tools/
  3. cayenne-ant/
  4. cayenne-cache-invalidation/
  5. cayenne-cgen/
  6. cayenne-client/
  7. cayenne-client-jetty/
  8. cayenne-commitlog/
  9. cayenne-crypto/
  10. cayenne-dbcp2/
  11. cayenne-dbsync/
  12. cayenne-di/
  13. cayenne-gradle-plugin/
  14. cayenne-jcache/
  15. cayenne-jgroups/
  16. cayenne-jms/
  17. cayenne-joda/
  18. cayenne-lifecycle/
  19. cayenne-osgi/
  20. cayenne-project/
  21. cayenne-project-compatibility/
  22. cayenne-protostuff/
  23. cayenne-rop-server/
  24. cayenne-server/
  25. cayenne-velocity/
  26. cayenne-web/
  27. cayenne-xmpp/
  28. docs/
  29. maven-plugins/
  30. modeler/
  31. tutorials/
  32. .gitignore
  33. .travis.yml
  34. KEYS
  35. pom.xml
  36. rat.sh
  37. README.md
  38. RELEASE-NOTES.txt
  39. UPGRADE.txt
README.md

Apache Cayenne

Maven Central Build Status

Apache Cayenne is an open source persistence framework licensed under the Apache License, providing object-relational mapping (ORM) and remoting services.

Quick Start

Modeler GUI application

To create Cayenne project you will need Cayenne Modeler. You can download it from https://cayenne.apache.org/download/

Modeler

See tutorial https://cayenne.apache.org/docs/4.0/getting-started-guide/

Include Cayenne into project

Maven
<dependencies>
    <dependency>
        <groupId>org.apache.cayenne</groupId>
        <artifactId>cayenne-server</artifactId>
        <version>4.0.RC1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cayenne</groupId>
        <artifactId>cayenne-java8</artifactId>
        <version>4.0.RC1</version>
    </dependency>
</dependencies>
Gradle
compile group: 'org.apache.cayenne', name: 'cayenne-server', version: '4.0.RC1'
compile group: 'org.apache.cayenne', name: 'cayenne-java8', version: '4.0.RC1'

Create Cayenne Runtime

ServerRuntime cayenneRuntime = ServerRuntime.builder()
    .addConfig("cayenne-project.xml")
    .build();

Create New Objects

ObjectContext context = cayenneRuntime.newContext();

Artist picasso = context.newObject(Artist.class);
picasso.setName("Pablo Picasso");
picasso.setDateOfBirth(LocalDate.of(1881, 10, 25));

Painting girl = context.newObject(Painting.class);
girl.setName("Girl Reading at a Table");
girl.setArtist(picasso);

context.commitChanges();

Select Objects

// Single object select with order
Artist artist = ObjectSelect.query(Artist.class)
        .orderBy(Artist.NAME.asc())
        .selectFirst(context);

// Select with join
List<Painting> paintings = ObjectSelect.query(Painting.class)
        .where(Painting.ARTIST.dot(Artist.DATE_OF_BIRTH).lt(LocalDate.of(1900, 1, 1)))
        .select(context);

// Select count
long count = ObjectSelect.query(Painting.class)
        .where(Painting.ESTIMATED_PRICE.gt(10000))
        .selectCount(context);

Documentation

Getting Started

https://cayenne.apache.org/docs/4.0/getting-started-guide/

Full documentation

https://cayenne.apache.org/docs/4.0/cayenne-guide/

JavaDoc

https://cayenne.apache.org/docs/4.0/api/

About

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.

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.

License

Cayenne is available as free and open source under the Apache License, Version 2.0.

Collaboration