Ebean ORM ------------------- - LGPL Licence - Uses JPA annotations for Mapping (@Entity, @OneToMany etc) - Simple "sessionless" API (no merge,persist,flush etc) - Supports "Partial Object" queries - Automatic query tuning via "Autofetch" Asynchronous Query execution ---------------------------- These queries are executed in a background thread and "Future" objects are returned. The "Future" objects returned extend java.util.concurrent.Future. This provides support for cancelling the query, checking if it is cancelled or done and getting the result with waiting and timeout support. See: http://www.avaje.org/ebean/introquery_future.html PagingList query ------------------------ PagingList is designed to make it easy to page through a query result. It includes support for 'fetch ahead' - fetching the next page via background query once the previous page is touched. It also automatically propagates the 'Persistence Context' so that all queries share the same persistence context and has built in support for getting the total row and page counts via FutureRowCount. See: http://www.avaje.org/ebean/introquery_paginglist.html Refactoring of the Cache ------------------------ Now when utilising the "L2" server cache you can specify you want 'readOnly' beans and then Ebean can return the instance from the cache rather than creating a new instance and copying the data (as a performance optimisation). The instances from the cache are marked as 'shared instances' and are effectively immutable - calling a setter on a shared instance will throw an IllegalStateException. The user guide documentation has been updated to reflect the changes to the cache, declaratively using the cache and discussion of 'persistence context' as the first level cache. Cheers, - Rob and the Ebean team.