With all due respect, I don't buy the portability argument. EJB3 persistence as defined by the standards bodies will always be behind the curve as a complete solution, so all developers will have to fall back to Hibernate extensions (or some other ORM provider's extensions). So H3/Annotations will become the de facto standard as Hibernate 2.x is now. Maybe I'm short-sighted, but I don't see anyone else coming up with a free, reliable and widely used ORM solution.
I also don't see a case where a group starts developing with Hibernate, then decides to go with another ORM solution. It's hard to compete with free, stable and widely-used. Even in the unlikely scenario of an API switch, I doubt that coding to strict EJB3 persistence standards then using additional Hibernate annotations will help anyone make the switch. So instead of editing the @Entity annotation, you wind up deleting the @org.hibernate.annotations.Entity annotation and replacing it with a different one.
I guess my main objection is the lack of integrated EJB3+Hibernate Extensions documentation. Right now, one would basically have to read the (incomplete) JSR EJB3 doc, then the Hibernate EJB3 reference documentation, and then look at the API docs for both to figure out which function or feature can be called from where...
Then again, maybe this will all be moot when HiA 2 comes out :)
|