The Java Persistence API (JPA) is the specification of Java that is used to persist data between Java object and the relational database table. JPA acts as a bridge between object-oriented domain models and relational database systems.
As JPA is just a specification, it doesn't perform any operation by itself. It requires an implementation. Therefore, ORM tools like Hibernate, TopLink, and iBatis implement JPA specifications for data persistence.
JPA specifications are defined with annotations in a javax.persistence package. Using JPA annotation helps us in writing implementation-independent code.