A JPA
pode ser usada fora de componentes EJB e fora da plataforma Java EE, em aplicações Java SE.
utiliza persistência gerenciada por contêiner (CMP), ou seja, as classes de entidade e persistência necessitam de um contêiner presente em um servidor de aplicações para serem executadas.
utiliza descritores XML para especificar informações do mapeamento relacional de objeto, mas não oferece suporte a anotações.
suporta consultas dinâmicas nomeadas nas classes de entidade que são acessadas apenas por instruções SQL nativas.
possui uma interface EntityBeans que padroniza operações Create Read Update Delete (CRUD) que envolvem tabelas.