Tuesday, April 15, 2008

Ebean by Avaje

Reading TheServerSide I've discovered yet another ORM, Ebean by Avaje.

The main positioning point is that they avoid using management context (like JPA EntityManager or JDO PersistenceManager). The product take inspiration from JPA (the mapping annotations, for instance), even if the author details a lot of problems with JPA.

The persistence layer has been specifically designed for relational databases and could not be easily ported to other data sources as it seems to me there is no abstraction layer. The product relies on byte-code enhancement (ASM), the author cruelly exposes himself to Hibernate bigots furor :-)

The current version includes support for the AutoFetch feature already described few weeks ago in this blog.

It seems the product is not completed yet, as some mapping options are missing (inheritance strategies for instance), there is no DDL generation and there is no QL. Most of these features are missing on purpose, or by design according to the author.

Their web site is well documented, clean, simple and is interesting to read per se.

To me the product is simple and developed by an engineer with its own vision. The only supported approach is bottom-up (from the database schema to the beans). No support for transparent ID, even if there is a nice text about what could be done with Oracle ROWID, to simulate an ODBMS navigational model on top of a RDBMS. I think only optimistic locking is supported. I still don't understand, looking at the examples, how transactions are managed. It seems to me there is an implicit transaction around a call to the save() method, but I've probably missed something, as this model would clearly be too limited.

It is not targetting enterprise applications, as too many features are missing. I rather see it as a clean "Lab" for future persistence.

No comments:

Post a Comment