Was ist JPA?
Eine JPA (Java Persistence API) ist eine Spezifikation von Java, die für den Zugriff auf, die Verwaltung und die Beibehaltung von Daten zwischen Java-Objekten und relationalen Datenbanken verwendet wird. Es gilt als Standardansatz für das objektrelationale Mapping.
JPA kann als Brücke zwischen objektorientierten Domänenmodellen und relationalen Datenbanksystemen angesehen werden. Da es sich um eine Spezifikation handelt, führt JPA selbst keine Operation aus. Daher bedarf es einer Umsetzung. Daher implementieren ORM-Tools wie Hibernate, TopLink und iBatis JPA-Spezifikationen für die Datenpersistenz.
Was ist Ruhezustand?
Ein Hibernate ist ein Java-Framework, das zum Speichern der Java-Objekte im relationalen Datenbanksystem verwendet wird. Es handelt sich um ein leichtgewichtiges Open-Source-ORM-Tool (Object Relational Mapping).
Hibernate ist eine Implementierung von JPA. Es folgt also den gemeinsamen Standards der JPA.
Bedarf an JPA
Wie wir bisher gesehen haben, handelt es sich bei JPA um eine Spezifikation. Es bietet allgemeine Prototypen und Funktionen für ORM-Tools. Durch die Implementierung derselben Spezifikation folgen alle ORM-Tools (wie Hibernate, TopLink, iBatis) den gemeinsamen Standards. Wenn wir unsere Anwendung in Zukunft von einem ORM-Tool auf ein anderes umstellen möchten, können wir dies problemlos tun.
JPA vs. Hibernate
JPA | Überwintern |
---|---|
Die Java Persistence API (JPA) definiert die Verwaltung relationaler Daten in den Java-Anwendungen. | Hibernate ist ein Object-Relational Mapping (ORM)-Tool, das zum Speichern des Status von Java-Objekten in der Datenbank verwendet wird. |
Es handelt sich lediglich um eine Spezifikation. Verschiedene ORM-Tools implementieren es für die Datenpersistenz. | Es ist eine der am häufigsten verwendeten JPA-Implementierungen. |
Es ist definiert in javax.persistence Paket. | Es ist definiert in org.hibernate Paket. |
Der EntityManagerFactory Die Schnittstelle wird verwendet, um mit der Entity-Manager-Factory für die Persistenzeinheit zu interagieren. Somit stellt es einen Entitätsmanager bereit. | Es benutzt SessionFactory Schnittstelle zum Erstellen von Sitzungsinstanzen. |
Es benutzt EntityManager Schnittstelle zum Erstellen, Lesen und Löschen von Vorgängen für Instanzen zugeordneter Entitätsklassen. Diese Schnittstelle interagiert mit dem Persistenzkontext. | Es benutzt Sitzung Schnittstelle zum Erstellen, Lesen und Löschen von Vorgängen für Instanzen zugeordneter Entitätsklassen. Es fungiert als Laufzeitschnittstelle zwischen einer Java-Anwendung und Hibernate. |
Es benutzt Java Persistence Query Language (JPQL) als objektorientierte Abfragesprache zur Durchführung von Datenbankoperationen. | Es benutzt Abfragesprache für den Ruhezustand (HQL) als objektorientierte Abfragesprache zur Durchführung von Datenbankoperationen. |