Unterschied zwischen JPA und Hibernate

Unterschied zwischen JPA und Hibernate
Unterschied zwischen JPA und Hibernate

Video: Unterschied zwischen JPA und Hibernate

Video: Unterschied zwischen JPA und Hibernate
Video: Tarifvertrag – einfach erklärt 2024, Juli
Anonim

JPA vs. Hibernate

Fast alle Unternehmensanwendungen müssen regelmäßig auf relationale Datenbanken zugreifen. Ein Problem früherer Technologien (wie JDBC) war jedoch die Impedanzfehlanpassung (Unterschied zwischen objektorientierten und relationalen Technologien). Eine Lösung für dieses Problem wurde durch die Einführung einer abstrakten Schicht namens Persistenzschicht eingeführt, die den Datenbankzugriff von der Geschäftslogik kapselt. JPA (Java Persistence API) ist ein Framework für die Verw altung relationaler Daten (unter Verwendung der Persistenzschicht) in Java-Anwendungen. Es gibt viele Anbieterimplementierungen von JPA, die in der Java-Entwicklergemeinschaft verwendet werden. Hibernate ist die beliebteste derartige Implementierung von JPA (DataNucleus, EclipseLink und OpenJPA sind einige andere). Die neueste JPA-Version (JPA 2.0) wird vollständig von Hibernate 3.5 unterstützt, das im März 2010 veröffentlicht wurde.

Was ist JPA?

JPA ist ein Framework zur Verw altung relationaler Daten für Java. Es kann mit Anwendungen verwendet werden, die JSE (Java Platform, Standard Edition) oder JEE (Java Platform, Enterprise Edition) verwenden. Die aktuelle Version ist JPA 2.0, die am 10. Dezember 2009 veröffentlicht wurde. JPA ersetzte EJB 2.0- und EJB 1.1-Entity-Beans (die von der Java-Entwicklergemeinschaft heftig als schwergewichtig kritisiert wurden). Obwohl Entity Beans (in EJB) Persistenzobjekte bereitstellten, waren viele Entwickler daran gewöhnt, stattdessen relativ einfache Objekte zu verwenden, die von DAO (Data Access Objects) und anderen ähnlichen Frameworks angeboten werden. Als Ergebnis wurde JPA eingeführt, das viele der netten Features der oben erwähnten Frameworks erfasste.

Persistenz, wie in JPA beschrieben, deckt die API ab (definiert in javax. Persistenz), JPQL (Java Platform, Enterprise Edition) und Metadaten, die für relationale Objekte erforderlich sind. Der Zustand einer Persistenzentität wird normalerweise in einer Tabelle gespeichert. Instanzen einer Entität entsprechen Zeilen der Tabelle der relationalen Datenbank. Metadaten werden verwendet, um die Beziehungen zwischen Entitäten auszudrücken. Anmerkungen oder separate XML-Deskriptordateien (die mit der Anwendung bereitgestellt werden) werden verwendet, um Metadaten in Entitätsklassen anzugeben. JPQL, das SQL-Abfragen ähnelt, wird verwendet, um gespeicherte Entitäten abzufragen.

Was ist Ruhezustand?

Hibernate ist ein Framework, das für objektrelationales Mapping verwendet werden kann, das für die Java-Programmiersprache bestimmt ist. Genauer gesagt handelt es sich um eine ORM-Bibliothek (Object-Relational Mapping), die verwendet werden kann, um ein objektrelationales Modell auf ein herkömmliches relationales Modell abzubilden. Vereinfacht ausgedrückt schafft es eine Zuordnung zwischen Java-Klassen und Tabellen in relationalen Datenbanken, auch zwischen Java- und SQL-Datentypen. Hibernate kann auch zum Abfragen und Abrufen von Daten verwendet werden, indem SQL-Aufrufe generiert werden. Dadurch wird der Programmierer von der manuellen Handhabung von Ergebnismengen und der Konvertierung von Objekten entlastet. Hibernate wird als kostenloses Open-Source-Framework veröffentlicht, das unter der GNU-Lizenz vertrieben wird. Eine Implementierung für die JPA-API wird in Hibernate 3.2 und späteren Versionen bereitgestellt. Gavin King ist der Gründer von Hibernate.

Was ist der Unterschied zwischen JPA und Hibernate?

JPA ist ein Framework zur Verw altung relationaler Daten in Java-Anwendungen, während Hibernate eine spezifische Implementierung von JPA ist (idealerweise können JPA und Hibernate daher nicht direkt verglichen werden). Mit anderen Worten, Hibernate ist eines der beliebtesten Frameworks, das JPA implementiert. Hibernate implementiert JPA über Hibernate Annotation- und EntityManager-Bibliotheken, die zusätzlich zu Hibernate Core-Bibliotheken implementiert werden. Sowohl EntityManager als auch Anmerkungen folgen dem Lebenszyklus von Hibernate. Die neueste JPA-Version (JPA 2.0) wird von Hibernate 3.5 vollständig unterstützt. JPA hat den Vorteil, dass es über eine standardisierte Schnittstelle verfügt, sodass die Entwicklergemeinschaft damit besser vertraut sein wird als mit Hibernate. Andererseits können native Hibernate-APIs als leistungsstärker angesehen werden, da ihre Funktionen eine Obermenge von denen von JPA sind.

Empfohlen: