Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:java:learningunits:lu03:c [2025/09/01 21:31] apeterde:modul:ffit:3-jahr:java:learningunits:lu03:c [2025/09/01 23:22] (aktuell) apeter
Zeile 15: Zeile 15:
 Wir wählen den Java-first-Ansatz mit JPA/Hibernate. Wir wählen den Java-first-Ansatz mit JPA/Hibernate.
  
-Die ''build.gradle'' wurde im Commit ''TODO'' bereits mit den passenden Abhängigkeiten ergänzt. Die zusätzlich Abhängigkeit zu Hikari dient ausserdem, um Datenbankverbindungen zu cachen.+Die ''build.gradle'' wurde im Commit ''eeed45d'' bereits mit den passenden Abhängigkeiten ergänzt. Die zusätzlich Abhängigkeit zu Hikari dient ausserdem, um Datenbankverbindungen zu cachen.
  
 Ebenfalls existiert eine Konfiguration ''persistance.xml''. Gewisse Einstellungen wie ''jakarta.persistence.jdbc.url'', ''jakarta.persistence.jdbc.user'' oder ''jakarta.persistence.jdbc.password'' werden nicht mit der Konfigurationsdatei commited, sondern können wie bis anhin in ''config.properties'' geschrieben und ersetzen die bisherigen Variabeln. Ebenfalls existiert eine Konfiguration ''persistance.xml''. Gewisse Einstellungen wie ''jakarta.persistence.jdbc.url'', ''jakarta.persistence.jdbc.user'' oder ''jakarta.persistence.jdbc.password'' werden nicht mit der Konfigurationsdatei commited, sondern können wie bis anhin in ''config.properties'' geschrieben und ersetzen die bisherigen Variabeln.
Zeile 85: Zeile 85:
  
 Um Objekte von der Datenbank zu lesen kann mittels ''EntityManager'' das entsprechende Abfrage ausgeführt werden. Zum Speichern kann ''persist'' oder ''merge'' (überschreiben falls vorhanden) genutzt werden. Um Objekte von der Datenbank zu lesen kann mittels ''EntityManager'' das entsprechende Abfrage ausgeführt werden. Zum Speichern kann ''persist'' oder ''merge'' (überschreiben falls vorhanden) genutzt werden.
 +Bei den ''<PROPERTIES>'' werden die Properties von ''config.properties'' mitgegeben.
  
 <code java> <code java>
 +    private final EntityManagerFactory emf = Persistence.createEntityManagerFactory("localPU", <PROPERTIES>);
 +
     public List<Book> getAll(int limit) {     public List<Book> getAll(int limit) {
-        try (EntityManagerFactory emf = Persistence.createEntityManagerFactory("localPU", <PROPERTIES>); +        try (EntityManager em = emf.createEntityManager()) {
-             EntityManager em = emf.createEntityManager()) {+
             var query = em.createQuery("SELECT b FROM Book b ORDER BY id", Book.class);             var query = em.createQuery("SELECT b FROM Book b ORDER BY id", Book.class);
             if (limit > 0) {             if (limit > 0) {
Zeile 97: Zeile 99:
         }         }
     }     }
 +
  
     public void saveAll(List<Book> books) {     public void saveAll(List<Book> books) {
-        try (EntityManagerFactory emf = Persistence.createEntityManagerFactory("localPU", <PROPERTIES>); +        try (EntityManager em = emf.createEntityManager()) {
-             EntityManager em = emf.createEntityManager()) {+
             try {             try {
                 em.getTransaction().begin();                 em.getTransaction().begin();
Zeile 114: Zeile 116:
     }     }
 </code> </code>
 +
 +Schreiben Sie Ihren Code so um, dass die ''Book''-Objekte via Hibernate gelesen und geschrieben werden und überprüfen Sie das Resultat mit den bestehenden Tests.
 +
 +Der Commit ''e556889'' dient dazu, das Ganze in der Pipeline laufen zu lassen. ''schema.sql'' wird nicht mehr benötigt. Hibernate legt bei Bedarf die Tabellen selbst an. Dies vereinfacht das Hinzufügen neuer Entitäten deutlich.
 +
  
  • de/modul/ffit/3-jahr/java/learningunits/lu03/c.1756755108.txt.gz
  • Zuletzt geändert: 2025/09/01 21:31
  • von apeter