Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Arbeiten mit ORM: JPA und Hibernate | Arbeiten Mit Datenbanken
Spring Boot Backend

bookArbeiten mit ORM: JPA und Hibernate

Wie Sie bereits wissen, ist Object-Relational Mapping (ORM) eine Technologie, die es Entwicklern ermöglicht, mit einer Datenbank auf Objektebene statt über SQL-Abfragen zu interagieren.

Im Wesentlichen ist ORM ein Konzept, das es ermöglicht, ein Java-Objekt als Daten in einer Datenbank darzustellen (und umgekehrt). Es wird in Form der Java Persistence API (JPA) Spezifikation implementiert.

JPA

Praxisbeispiel

Stellen Sie sich vor, JPA ist wie eine Norm für Steckdosen in verschiedenen Ländern. Diese Norm legt fest, wie eine Steckdose aussehen soll und welche Spezifikationen sie erfüllen muss, damit Geräte daran angeschlossen werden können.

Die Norm selbst produziert jedoch keine Steckdosen. Um sie tatsächlich zu nutzen, benötigen Sie Hersteller, die diese Norm umsetzen. Sie fertigen die eigentlichen Steckdosen, die der Norm entsprechen.

Hauptkomponenten der JPA

JPA-Komponenten sind Schlüsselelemente, die zusammenarbeiten, um Funktionalität für die Interaktion mit einer Datenbank bereitzustellen.

Diese Komponenten werden anhand von praxisnahen Beispielen erläutert, um eine bessere Zuordnung für den zukünftigen Einsatz zu ermöglichen.

Entity

Zur Erinnerung: Eine Entity ist eine Klasse im Code, die eine Tabelle in der Datenbank repräsentiert. Beispielsweise beschreibt die User-Klasse, welche benutzerbezogenen Daten gespeichert werden.

Stellen Sie sich dies wie eine Visitenkarte vor. Die Karte enthält den Namen, die Berufsbezeichnung und die Kontaktinformationen einer Person. In JPA beschreibt eine Entity-Klasse alle wichtigen Merkmale eines Objekts, ähnlich wie eine Visitenkarte eine Person beschreibt.

EntityManager

In JPA führt der EntityManager Operationen wie Hinzufügen, Aktualisieren oder Löschen von Datensätzen aus und verwaltet all diese Aktionen.

Der EntityManager ist verantwortlich für die Verwaltung des Lebenszyklus von Entitäten (Objekten) und deren Interaktion mit der Datenbank.

Hauptmethoden

So wird der EntityManager in Spring Boot verwendet

Persistenzkontext

Lebenszyklus von Entitäten

  • Transient: Die Entität wurde gerade erstellt, aber noch nicht in der Datenbank gespeichert;
  • Managed: Die Entität wurde in der Datenbank gespeichert und wird vom EntityManager verwaltet. Alle Änderungen daran werden automatisch nachverfolgt;
  • Detached: Die Entität wurde zuvor verwaltet, aber der Persistenzkontext wurde geschlossen oder der EntityManager wurde geleert. Änderungen in diesem Zustand werden nicht automatisch nachverfolgt;
  • Removed: Die Entität wurde zur Löschung aus der Datenbank markiert.

Wenn der EntityManager eine Entität erstellt oder findet, wird diese Entität in den Persistenzkontext aufgenommen.

Alle Änderungen, die an der verwalteten Entität vorgenommen werden, werden automatisch nachverfolgt und nach dem Abschluss der Transaktion mit der Datenbank synchronisiert.

JPQL (Java Persistence Query Language)

In JPQL werden Abfragen formuliert, um Daten in der Datenbank im objektorientierten Stil zu finden oder zu ändern.

SELECT c from Category c WHERE c.title = 'query'

In JPQL arbeiten wir nicht direkt mit den Tabellen- und Spaltennamen. Stattdessen verweisen wir auf die Klasse Category und deren Feld title, wodurch die Abfrage für Java-Entwickler verständlicher wird. JPQL abstrahiert die zugrunde liegende Datenbankstruktur und ermöglicht den Fokus auf das objektorientierte Modell.

Hibernate

Beispielsweise kann Hibernate Datenbanktabellen basierend auf Ihren Entitäten (Klassen) automatisch erstellen und aktualisieren.

Hibernate integriert Caching-Mechanismen, die es ermöglichen, häufig verwendete Daten im Speicher zu halten, wodurch die Anzahl der Datenbankanfragen reduziert und die Anwendungsleistung verbessert wird.

1. Was ist JPA?

2. Welche Schnittstelle in JPA wird für Operationen an Entitäten verwendet?

question mark

Was ist JPA?

Select the correct answer

question mark

Welche Schnittstelle in JPA wird für Operationen an Entitäten verwendet?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

What are the main differences between JPA and Hibernate?

Can you explain more about how the EntityManager works?

How does JPQL differ from regular SQL?

Awesome!

Completion rate improved to 3.45

bookArbeiten mit ORM: JPA und Hibernate

Swipe um das Menü anzuzeigen

Wie Sie bereits wissen, ist Object-Relational Mapping (ORM) eine Technologie, die es Entwicklern ermöglicht, mit einer Datenbank auf Objektebene statt über SQL-Abfragen zu interagieren.

Im Wesentlichen ist ORM ein Konzept, das es ermöglicht, ein Java-Objekt als Daten in einer Datenbank darzustellen (und umgekehrt). Es wird in Form der Java Persistence API (JPA) Spezifikation implementiert.

JPA

Praxisbeispiel

Stellen Sie sich vor, JPA ist wie eine Norm für Steckdosen in verschiedenen Ländern. Diese Norm legt fest, wie eine Steckdose aussehen soll und welche Spezifikationen sie erfüllen muss, damit Geräte daran angeschlossen werden können.

Die Norm selbst produziert jedoch keine Steckdosen. Um sie tatsächlich zu nutzen, benötigen Sie Hersteller, die diese Norm umsetzen. Sie fertigen die eigentlichen Steckdosen, die der Norm entsprechen.

Hauptkomponenten der JPA

JPA-Komponenten sind Schlüsselelemente, die zusammenarbeiten, um Funktionalität für die Interaktion mit einer Datenbank bereitzustellen.

Diese Komponenten werden anhand von praxisnahen Beispielen erläutert, um eine bessere Zuordnung für den zukünftigen Einsatz zu ermöglichen.

Entity

Zur Erinnerung: Eine Entity ist eine Klasse im Code, die eine Tabelle in der Datenbank repräsentiert. Beispielsweise beschreibt die User-Klasse, welche benutzerbezogenen Daten gespeichert werden.

Stellen Sie sich dies wie eine Visitenkarte vor. Die Karte enthält den Namen, die Berufsbezeichnung und die Kontaktinformationen einer Person. In JPA beschreibt eine Entity-Klasse alle wichtigen Merkmale eines Objekts, ähnlich wie eine Visitenkarte eine Person beschreibt.

EntityManager

In JPA führt der EntityManager Operationen wie Hinzufügen, Aktualisieren oder Löschen von Datensätzen aus und verwaltet all diese Aktionen.

Der EntityManager ist verantwortlich für die Verwaltung des Lebenszyklus von Entitäten (Objekten) und deren Interaktion mit der Datenbank.

Hauptmethoden

So wird der EntityManager in Spring Boot verwendet

Persistenzkontext

Lebenszyklus von Entitäten

  • Transient: Die Entität wurde gerade erstellt, aber noch nicht in der Datenbank gespeichert;
  • Managed: Die Entität wurde in der Datenbank gespeichert und wird vom EntityManager verwaltet. Alle Änderungen daran werden automatisch nachverfolgt;
  • Detached: Die Entität wurde zuvor verwaltet, aber der Persistenzkontext wurde geschlossen oder der EntityManager wurde geleert. Änderungen in diesem Zustand werden nicht automatisch nachverfolgt;
  • Removed: Die Entität wurde zur Löschung aus der Datenbank markiert.

Wenn der EntityManager eine Entität erstellt oder findet, wird diese Entität in den Persistenzkontext aufgenommen.

Alle Änderungen, die an der verwalteten Entität vorgenommen werden, werden automatisch nachverfolgt und nach dem Abschluss der Transaktion mit der Datenbank synchronisiert.

JPQL (Java Persistence Query Language)

In JPQL werden Abfragen formuliert, um Daten in der Datenbank im objektorientierten Stil zu finden oder zu ändern.

SELECT c from Category c WHERE c.title = 'query'

In JPQL arbeiten wir nicht direkt mit den Tabellen- und Spaltennamen. Stattdessen verweisen wir auf die Klasse Category und deren Feld title, wodurch die Abfrage für Java-Entwickler verständlicher wird. JPQL abstrahiert die zugrunde liegende Datenbankstruktur und ermöglicht den Fokus auf das objektorientierte Modell.

Hibernate

Beispielsweise kann Hibernate Datenbanktabellen basierend auf Ihren Entitäten (Klassen) automatisch erstellen und aktualisieren.

Hibernate integriert Caching-Mechanismen, die es ermöglichen, häufig verwendete Daten im Speicher zu halten, wodurch die Anzahl der Datenbankanfragen reduziert und die Anwendungsleistung verbessert wird.

1. Was ist JPA?

2. Welche Schnittstelle in JPA wird für Operationen an Entitäten verwendet?

question mark

Was ist JPA?

Select the correct answer

question mark

Welche Schnittstelle in JPA wird für Operationen an Entitäten verwendet?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 4
some-alt