Hi Andrew!

When I did my first evaluations for a new project 3 years ago. Back then I was 
checking out the sources fo EclipseLink, Hibernate and OpenJPA.

EclipseLink just didn't cut it at all. From what I've heard, the Eclipse 
community now rewrote a huge part of the code already, but they are imo still 
quite a few miles away from being production ready. I have honestly no idea how 
it could have become the RI for JPA...

Hibernate is much better. It basically works pretty well and is also relatively 
fast. There is only one thing which I don't like that much and this is their 
subclassing approach for 'enhancement'. This has a few nasty side effects and 
you need to know them.

I finally picked OpenJPA because it was (in my tests) the only JPA provider 
which was able to reliably serialize/deserialize entities without loosing state 
or trashing the database afterwards. I really need this because we have a real 
cluster environment and peak 5 mio page hits/day in our app, so not being able 
to serialize is a knock out. Of course you need a few magic properties in your 
persistence.xml:

<property name="openjpa.DetachState" value="loaded(DetachedStateField=true)"/>
<property name="openjpa.Compatibility" 
value="IgnoreDetachedStateFieldForProxySerialization=true"/>

The problem with the other JPA providers was the following scenario: 

1.) load from db
2.) change
3.) serialize (store in JSF @ViewScoped and wait for 2nd request)
4.) deserialize 

5.) change in the JSF applyValues phase

6.) merge in a JSF action


if you could change 5 and 6 then the other providers work as well. Too bad that 
doesn't fit the JSF workflow!
OpenJPA accomplishes this by _still_ using a StateManager, even if the entity 
is detached. 


In EclipseLink this didn't work at all.

In Hibernate it will work if you do _not_ use any Lazy Loading. Maybe that's 
the reason why HIbernate in the default modeeven ignores FetchType.LAZY in the 
top layer of your entity and always does eager fetching.




LieGrue,
strub


PS: I'm using build-time-enhancement with the openjpa-maven-plugin



----- Original Message -----
> From: Andrew Hastie <and...@ahastie.net>
> To: users@openjpa.apache.org
> Cc: 
> Sent: Wednesday, May 2, 2012 8:56 PM
> Subject: Re: OpenJPA vs EclipseLink
> 
> For information, OpenJPA it is also embedded with IBM WebSphere.
> 
> On 02/05/12 19:25, José Luis Cetina wrote:
>>  Hi im newbie in OpenJPA i know OpenJPA is an implementation as EclipseLink,
>>  i always used EclipseLink, now im moving from Glassfish to TomEE and i see
>>  openjpa is embeded with TomEE, i read the OpenJPA manual and i like the
>>  innovations in openjpa, but i just want to know the
>>  advantages/disadvantages of openjpa, or a little comparative with openjpa
>>  vs eclipselink or hibernate, and one more thing about how fast is openjpa
>>  vs others.
>> 
>

Reply via email to