One minor factual quibble with the below. Hibernate does require build time enhancement in some situations.
For example, if you have an entity with a Blob as a field, you have to use their javaassist based byte code enhancement to allow that Blob to be lazily loaded. On Fri, 2011-07-15 at 19:32 +0200, Harald Wellmann wrote: > Everyone I know who's moved from Hibernate to OpenJPA agrees that > enhancement is a major nuisance in OpenJPA. > > I'm spending valuable time explaining to my team why this is needed, > which of all the warning messages can be ignored and which are real > problems, and why we didn't simply stick with Hibernate (answer: because > Hibernate sucks on persistent maps). > > Enhancement is a violation of the KISS principle. Hibernate just works > out of the box, and you don't have to worry about enhancement or weaving > at all. > > I really think the onus is on OpenJPA: Why should users have to learn > about extra build steps when they could do without? > > The most manifest problem with build-time enhancment is that it makes > your entity JAR depend on OpenJPA. This is a no-go when you use (parts > of) your entity model with different JPA providers. > > > > > > Can you please elaborate why you did not prefer *build-time enhancement*? > > > > build-time enhancement is > > a) a simple post-compilation step > > Yes, but it makes your classes depend on OpenJPA. > > > b) easily integrable to any automated Ant/Maven based build environment > > This does not cover IDEs like Eclipse + Maven + m2e + WTP where any > postprocessing of class files just breaks the toolchain. > > > c) saves a ton of trouble > > Funny - enhancement is really the one major _source_ of trouble I've had > with OpenJPA since I started using it a year ago, and I'd really love to > see it disappear. > > > > > But it is not as popular as we would like it to be. > > I am just trying to understand why. > > > > Because it forces you to worry about things you don't want to know about. > > Deployment time enhancement at least works on Glassfish 3.1 or on OSGi > with Equinox 3.7 with Aries 0.4-SNAPSHOT, but then you still have to > worry about enhancement for out-of-container tests. > > And my project uses Spring and Tomcat (which are not so easy to get rid > of) where load time enhancement just doesn't work at all for some > reason, at least not with our fairly complex entity model. > > Best regards, > > Harald > > > >