File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Object Relational Mapping and the fly likes Which JPA RI to use ? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "Which JPA RI to use ?" Watch "Which JPA RI to use ?" New topic

Which JPA RI to use ?

chris kumar

Joined: Jun 04, 2009
Posts: 17
Hi All,

Can you please tell me which JPA implementations is to be used for Enterprise apps as well as Standarad app.

The few that i see is Hibernate, Eclipse links, Top links or OpenJPA, as the RI for JPA.

Can you please let me know which one we should use ..?
Christian Gossart
Ranch Hand

Joined: Mar 13, 2008
Posts: 34
Hi Chris, here is my understanding:

Afaik, there is only one reference implementation for a specification: Toplink was the JPA 1.0 RI, and its successor EclipseLink will be (is) the JPA 2.0 RI.
Hibernate and OpenJPA are implementations of the spec, but not the reference one.

In terms of functionality described in the JPA spec, any of these implementations should behave the same. Additionaly, each one provide specific extensions, that are not 'JPA compliant', but can be useful (for example, the Hibernate Criteria API is not part of the JPA 1.0 spec, and I miss it).

I would say that for a standard application, Hibernate seems to be the mainstream framework, and has a great forum/community (and also a great Spring integration, as I'm a Spring fan ).

For an enterprise application, I'd stick with the implementation coming from the targeted application server (just to avoid depending on another set of libraries): Hibernate with JBoss, OpenJPA with Websphere and Weblogic, EclipseLink with Glassfish.

If anyone knows compatibility problems between some JPA implementations and application servers, or implementations problems with respect to the JPA spec, I'd really be glad to improve my knowledge on this topic

Christian Gossart
Cameron Wallace McKenzie
author and cow tipper
Saloon Keeper

Joined: Aug 26, 2006
Posts: 4968

I'd suggest Hibernate, although, if you are on a JEE5 server, just use your native JPA provider/Entity Manager.

I believe that JPA2 will include the ability to perform criteria type queries.

-Cameron McKenzie
I agree. Here's the link:
subject: Which JPA RI to use ?
It's not a secret anymore!