Amigo, como foi dito antes o JPA é uma Especificação.
o Trabalho dela é facilitar o uso de frameworks ORM.
Vou dar um exemplo bem simples para vc viajar…
Digamos que você é cliente de dois bancos. (Bradesco e Itaú).
E você tem que fazer operações nos dois bancos frequentemente.
Aí vc contrata uma empresa(JPA) para resolver suas coisas com os bancos porque voce não gosta de pegar filas, não tempo, … sei lá o motivo!
A partir desse momento, quando você precisar resolver alguma coisa em qualquer banco que seja, vc pede para a empresa (JPA) resolver para você.
E ela se vira.
Não importa como eh q resolve no bradesco ou no itaú.
Ela que tem q saber como fazer.
E você não precisa se preocupar com as burocracias de cada banco!
Voltando para a área técnica
O JPA (empresa) conhece os comandos dos Frameworks ORM (Bancos).
E você só precisa conhecer como lhe dar com o JPA (empresa), independente se você usar o “hibernate” ou “TopLink” (que seriam os bancos do exemplo anterior) ou qualquer outro framework que implemente o JPA.
JPA é apenas uma coleção de interfaces que reconhece seu ORM (Hibernate ou outro…) e faz a persistencia dos dados.