jbchurn wrote:
1. You mention we can use JPA whenever we want, does that mean we can use JPA without using Toplink or Hibernate?
You need *some* implementation of JPA, but it is not tied to an J2EE server.
Quote:
2. When we say A is an "implementation" or "reference implementation", that means A is something that built on top of the JPA, such as Toplink Essential. Is there correct?
no. It is not build *on top* of JPA it is an *implementation* of the JPA specification. Hibernate EntityManager and Toplink essentials is such things.
Quote:
3. Do I understand correctly that JPA itself does not know how to generate to multiple database dialect SQL? It's the product such as Toplink or Hibernate that build on top of JPA that makes it able to generate SQL for various database dialect. And the type of support database dialect is again depends toplink or hibernate has to offer. Correct?
JPA is a *specification* not an *implementation* it does not care about what sql is generated, that is the *implementation*.
Quote:
4. Toplink Essential is the reference implementation for EJB3 JPA (correct me if i'm wrong). So, for Hibernate side, is Hibernate EntityManager the same category of component as Toplink Essential?
yes
Quote:
5. Is "EJB3 JPA" different from "JPA"? Must we implement EJB if we want to use JPA?
same answer that before. What do you mean by "implement EJB" and have you looked at what EJB actually means in EJB3. In any case, if you by EJB mean: "am I required to use a full appserver" then no you don't.
And you don't need session beans (but they are definitly recommended), you just need entity beans (which is just POJO's in EJB3)
/max