ejb3-persistence.jar contains only one class (Persistence), four interfaces, several exceptions, and many annotations. It does not have much implementations, and is completely different from EJB2.x API. Sun has the copyright for the code in ejb3-persistence.jar. JBoss put it in this jar file.

I used Hibernate alone with hibernate3.jar (with some commons jars) before. It worked fine. We can say JPA is built on top of Hibernate (or Toplink, ...) and JPA API itself is not enough to create a DB access layer.

If your implementation is based on Hibernate EJB3 JPA, your code is not portable to other EJB3 JPA implementations (e.g., Toplink...) [ April 23, 2008: Message edited by: John King ]