Ebean is an open source (LGPL license) Java Object Relational Mapping tool. It uses JPA Annotations (@entity, @OneToMany ...) for mapping. It provides a simple API for fetching and saving object graphs.
Ebean ORM v2.6.0 has just been released.
The interesting bits in this release for those interested are:
- JAX-RS Integration Module to help build RESTful API's to Entities
- Scala types supported
- Programmatic use of raw SQL to build object graphs
- Improvements to Automatic Query tuning
JAX-RS Integration Module
---------------------------------------
See http://www.avaje.org/ebean/jaxrs.html
Provides out of the box REST like API to your entities (and hence DB).
This is JSON only (no XML yet) and has no built in HATEOUS yet.
We have built in JSON marshalling/unmarshalling into Ebean to deal
with the ORM issues around partial objects for updates and queries.
Scala types supported
-----------------------------------
You can use Scala Option and mutable collection types
(Scala 2.8 mutable Buffer, Set and Map) in your entity beans
rather than the java collection types.
Programmatic use of raw SQL (to build object graphs)
-------------------------------------------------------------------------------
See http://www.avaje.org/ebean/introquery_rawsql.html
Allows you to programmatically use raw SQL and define column mappings
to build object graphs. A good way to work with aggregate functions.
Improvements to Automatic Query tuning
-------------------------------------------------------------
This is where Ebean profiles the object graph use of your app and
uses that information to tune the queries for you. There have been
improvements in the "query joins" (using multiple SQL queries to
build the object graph) that Autofetch is now using and you can mix
manual tuning with Autofetch.
Ebean ORM Overview (http://www.avaje.org)
---------------------------
- Uses JPA annotations for Mapping
- Sessionless API (no attach/detach merge/persist/flush)
- Lazy loading just works
- Supports Automatic Query tuning (Profile Object graph use to automatically tune your queries)
- Partial Object support (for performance)
- Stateless Updates
- Transparent Encryption (via DB functions or Java encryption)
- Support for Spring or JTA Transaction Managers
- Background Fetching
- and now JAX-RS Integration (JSON Only - not XML yet)
- LGPL license
Cheers, Rob and the Ebean team.