Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Durch den Einsatz von Hibernate können Entwickler und Anwendung zur Laufzeit objektorientiert auf die Daten einer relationalen Datenbank zugreifen. Datenbankzugriffe werden nicht mehr in SQL sondern in vollständig Java formuliert. Dafür stehen dem Entwickler verschiedene Java APIs zur Verfügung, z.B.

  • JPQL / HQL (HiberanteHibernate-spezifische Variante von JPQL) - An SQL angelehnt, verwendet jedoch SQL-Strings was zahlreiche Nachteile mit sich bring.
  • JPA Criteria API - Sehr leistungsfähig, gilt jedoch als komplex und wird deshalb in der Praxis überwiegend für dynamische Queries verwendet.
  • JPA-SQL - Ermöglicht es Abfragen in SQL-Syntax zu schreiben und generiert daraus Javacode auf Basis der JPA Criteria API. Kombiniert die Vorteile von SQL und JPA Criteria API.

Erst zur Laufzeit werden die SQL Statements passend für die aktuell angebundene Datenbank automatisch von Hibernate generiert und an die Datenbank versendet. Datenbankanwendungen die mit Hibernate realisiert werden sind deshalb datenbankunabhängig. Aus kompatibilitätsgründen Kompatibilitätsgründen können spezielle Datenbankfunktionen mit JPA nicht genutzt werden. Es lassen sich jedoch auch native SQL Statements in Form von SQL-Strings absetzen und somit alle Stärken und Fähigkeiten einer Datenbank nutzen. Die datenbankunabhängigkeit Datenbankunabhängigkeit geht dadurch jedoch verloren und die Verwendung von SQL-Strings hat erhebliche Nachteile.

...