- EJB3-like ORM mapping
- Cascading Save and Delete
- Lazy loading
- Transaction Management and Logging
- Statement Batching
- Lucene Text Search Integration
The Avaje Ebean project provides an Object Relational Mapping Persistence Layer similar to the JPA API, but without the need for the EntityManager or any other session object (with the exception of a single Ebean object.) It includes finding objects by predicates and uses a code generator to manage schemas. Ebean provides the usual features of:
- Posted by: rob bygrave
- Posted on: November 16 2006 09:42 EST
Just to note that the postings get edited... and in this case I want to just clarify the (with exception of a single Ebean object) comment. The single Ebean object is in fact a singleton, and as such provides a static API to save, delete find objects. It does not represents a Session object. The Code generator generates EJB3 annotated Entity Beans. If people where interested they could use those beans with an EJB3 server if they wanted to. Ebean uses EJB3 ORM mapping and is expected to be 100% compatible with EJB3 ORM annotations (OneToOne, ManyToOne etc etc).
Also, just to clarify the "EJB3-like ORM mapping". Ebean uses EJB3 ORM mapping annotations. The intention is to be 100% compatible with EJB3 ORM Mapping. However, Ebean automatically finds all your JOINS, determines the 'owning side' of relationships, determines the optionality, and perhaps makes more use of Naming Conventions. The idea, being to keep the Deployment annotations as simple and clean as possible.
I'm interested in feedback of anyone that used this in their project. Also if you used EJB3 can you give us your experience of the differences between the two.
Good question Matt. Its possibly not obvious so I'd just like to point out that people have only been downloading this for about 5 days (and 2 of those where the weekend). So, although its a very good question I'm not sure you'll get an answer just yet given that its so 'new'. I have used it quite a bit and built avaje.org with it but I understand thats not really what you are asking. Let me know if there is a specific question I can answer for you. Cheers, Rob.