O Java Persistence API (JPA) é uma especificação Java para acesso, persistência e gerenciamento de dados entre objetos/classes Java e um banco de dados relacional, como o MySQL, Oracle e SQL Server.
É isso, o JPA é simplesmente uma especificação, não é uma implementação de código para acesso à bancos de dados. Para essa implementação e acesso é que existem os provedores de ORM, como o Hibernate, EclipseLink entre outros . Ele pode ser entendido como uma interface para um provedor específico de ORM. Os provedores é que devem implementá-lo, em outras palavras, seguir suas regras e/ou orientações.
Ok, se você é como eu, vai querer uma definição da documentação da Oracle, aí vai, mas os de cima são melhores rsrs:
O JPA , segundo os documentos da Oracle , provê aos desenvolvedores Java, facilidade no mapeamento objeto/relacional para o gerenciamento de dados relacionais em aplicações Java.
Referências:
https://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html
http://blog-tothought.rhcloud.com/post/2 (EXCELENTE!!!)
What do you think?