Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
| de:modul:ffit:3-jahr:java:learningunits:lu08:a [2025/10/28 01:01] – apeter | de:modul:ffit:3-jahr:java:learningunits:lu08:a [2025/10/28 01:33] (aktuell) – apeter | ||
|---|---|---|---|
| Zeile 87: | Zeile 87: | ||
| Mehr dazu auf https:// | Mehr dazu auf https:// | ||
| - | |||
| - | ==== JpaRepository ==== | ||
| - | |||
| - | JpaRepository erleichtert sehr viel, um 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 '' | ||
| - | |||