In my company, we are using Oracle DB and Weblogic application server. So in the process to upgrade or switch to new ORM, we shortlisted two options - Hibernate and EclipseLink.
I gathered following summary regarding both ORMs -
1. When you need to train people, like we are going to do next week – most of the companies have Hibernate experts.
2. When you hire new developers, most of them come with specific Hibernate experience.
3. When you need to consult with experts, both in the internet or consultants, you have LOTS of options. Endless forums and communities all regarding Hibernate.
4. Hibernate is an open source which has a huge community. This means that it will be improved all the time and will push the ORM market forward.
5. Hibernate is an open source which means you have the code to handle, and in case needed, fit it to your needs.
6. There are lots of plugins to Hibernate, such as validations tool, audit tools, etc. These becomes standard as well and dismiss you from impl. things yourself.
7. One most important thing with ORM tool, is to configure it according to your application’s needs. Usually the default setting doesn’t fit to your needs.
For that sake, when the market has a huge experience with the tool’s configuration, and lots of experts (see point 1 and 3) – most of chances you will find similar cases and
lots of knowledge about how to configure the tool and thus – your application.
1. Fully supported by Oracle. Hibernate no. In case of pb, it could be cumbersome to prove that it is a pure Weblogic one. Concretely, we will have to prove it (waste of time and complexity).
2. Eclipse link is developed by Oracle and the preferred ORM in the Weblogic /Oracle DB world.
3. Even if at a certain time EclipseLink was a bit late compared to Hibernate (feature), EclipseLink evolved very fast and we can consider now that they close the gap.
4. No additional fee as soon as you have Weblogic license. You will need to pays additional fee if you want some professional support on Hibernate.
5. We are currently relying on Hibernate for our legacy offer and are facing pb in second level cache (JGroups). Today, we are riding off this part!. Consequences are limitation in clustering approach (perf)
6. On EclipseLink side we do succeed to manage first and second level cache in a clustering approach.
7. Indeed Hibernate is open source, so you can imagine handling it. In reality, the code is so complex that it is nearly impossible to modify it. Moreover as it is LGPL, you need to feedback all the modified sources to the community systematically.
8. All tests performed by Oracle concerning Weblogic are using EclipseLink. Moreover, Oracle says that some specific optimizations are done to manage Oracle DB.
9. Hibernate comes from JBoss community.
Right now we are preferring Hibernate but there are concerns/reasons like EclipseLink developed by Oracle and preferred ORM in Webogic/ Oracle DB world (compatibility of ORM with DB and App. server), support comparison with both ORM, which are preventing to finalize the decision.
Please help me with you views and opinions and share you experience with us as which one is better and why so that we can make a perfect decision.
If you want you can also reply to me @ yogesh dot golande at gmail dot com.
- Posted by: Yogesh Golande
- Posted on: December 17 2010 01:01 EST
It is certain that Eclipselink has very lower user base that can't even be compared with Hibernate. That Hibernate has such a huge user makes it possible to test and develop the application in various ways. This is the ORM that developers use most and it means the better documentation.
Of course both has their own advantage and disadvantage but my own experiences tell me that those choose EclipseLink instead of Hibernate had more problems.
Both support JSR-317 but you could still take countless advises about this. (JPQL implemantation is better in EclipseLink, EclipseLink has some OSGI problems but it's performance is better, Hibernate uses dynamic proxies etc. etc...)
There is just one thing you should do as you know : Prepare a small benchmark and drive a test the application or a part of it. As you mentioned the in the articles you wrote the most important advantage is the only strong Oracle - WebLogic support but it can't be much important feature in the fastly growing world of open sources.
You have chosen Hibernate, keep going with that!