JPA
The Jakarta Persistence API provides Java developers with an object/relational mapping facility for managing relational data in Java applications. JPA is not a tool nor a framework, but a set of interfaces for accessing, persisting, and managing data between Java objects and (a) relational database. Because it is a set of interfaces, it will require an implementation to work with and persist Java objects. This will be ORM. Here are the main features of JPA:
- Cleaner, easier, standardized ORM.
- Supports inheritance, polymorphism, and polymorphic queries.
- Supports metadata annotations/XML descriptors to define the mapping (between objects and relational database).
- Supports a rich, SQL-like query language for static and dynamic queries.
- Pluggable persistence providers like Hibernate, MyBatis, etc.
- Caching: JPA supports 2 kinds of cache - first and second levels - to support performance tuning.
- Read more here.
Note: In 2019, JPA was renamed from Java Persistence API to Jakarta Persistence.
Visit the following resources to learn more: