Thanks for information, Beno�t.
Actually,
you should bold entire paragraph to make it more clear.
Hibernate implements the Java Persistence object/relational mapping and persistence management interfaces with the Hibernate Annotations and Hibernate EntityManager modules, on top of the mature and powerful Hibernate Core.
This sentence doesn't state that Hibernate as a whole is an implementation of JPA.
But currently, Hibernate has more components to make it conform with JPA, say Hibernate Annotations and Hibernate Entity Manager.
Hibernate Entity Manager is actually just a wrapper to Hibernate Core.
"Hibernate EntityManager wraps the powerful and mature Hibernate Core. You can fall back to Hibernate native APIs, native SQL, and native
JDBC whenever necessary."
http://www.hibernate.org/397.html In other
word, it's just an implementation of Adapter
pattern to allow clients to use JPA with Hibernate.
So, in my opinion, Hibernate as a whole is not an implementation of JPA.
Hibernate Core has its own API, and Hibernate EntityManager (a module of Hibernate) implements JPA, and wraps Hibernate Core.
I totally agree, if we say Hibernate EntityManager is an implementation of JPA, or Hibernate EntityManager is a wrapper of Hibernate Core.
But I don't think it is right to say that, "Hibernate" is an implementation of JPA.
This may cause headache, because Hibernate was mature before JPA was adopted.
Another example to make my explanation more clear.
I think it's incorrect to say that JDK is an implementation of Collection Framework API, just because Java Collection Framework (a part of JDK) is an implementation of Collection Framework API.
[ December 12, 2008: Message edited by: Kengkaj Sathianpantarit ]