Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| de:modul:ffit:3-jahr:java:learningunits:lu08:b [2025/10/28 01:31] – apeter | de:modul:ffit:3-jahr:java:learningunits:lu08:b [2025/10/28 01:35] (aktuell) – apeter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== LU08b - Persistierung ====== | ====== LU08b - Persistierung ====== | ||
| - | TODO | + | Spring Boots nutzt ebenfalls Hibernate, liefert aber einige mächtige Funktionen. |
| - | ==== Hibernate | + | ==== JpaRepository |
| + | |||
| + | JpaRepository erleichtert es sehr, Objekte in oder aus der Datenbank zu laden. | ||
| + | |||
| + | ^ Klassisch ^ JpaRepository ^ | ||
| + | | < | ||
| + | <code java> | ||
| + | import jakarta.persistence.*; | ||
| + | import java.util.List; | ||
| + | |||
| + | public class PersonPersistor { | ||
| + | |||
| + | private EntityManagerFactory emf; | ||
| + | |||
| + | public PersonPersistor() { | ||
| + | this.emf = Persistence.createEntityManagerFactory(" | ||
| + | } | ||
| + | |||
| + | public List< | ||
| + | EntityManager em = emf.createEntityManager(); | ||
| + | List< | ||
| + | |||
| + | try { | ||
| + | em.getTransaction().begin(); | ||
| + | TypedQuery< | ||
| + | " | ||
| + | query.setParameter(" | ||
| + | result = query.getResultList(); | ||
| + | em.getTransaction().commit(); | ||
| + | } catch (Exception e) { | ||
| + | em.getTransaction().rollback(); | ||
| + | throw e; | ||
| + | } finally { | ||
| + | em.close(); | ||
| + | } | ||
| + | return result; | ||
| + | } | ||
| + | |||
| + | public void close() { | ||
| + | emf.close(); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | <code java> | ||
| + | import org.springframework.data.jpa.repository.JpaRepository; | ||
| + | import java.util.List; | ||
| + | |||
| + | public interface PersonRepository extends JpaRepository< | ||
| + | List< | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Massgebend ist hierbei die Benennung der Methode (und Argumente). | ||
| + | |||
| + | ^ Schlüsselwort | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Folgende Methoden sind automatisch dabei, ohne dass sie implementiert werden müssen. | ||
| + | |||
| + | ^ Methode | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Wobei der Typ '' | ||
| - | TODO | ||