Training, Workshops, Softwareentwicklung

Hibernate Tutorial

Projekt Setup

Diese Version des Tutorials wurde mit folgenden Versionen getestet:

Versionen
<java.version>1.8</java.version>
<hibernate.version>5.4.2.Final</hibernate.version>
<flyway.version>5.0.6</flyway.version>
<logback.version>1.2.3</logback.version>
<h2.version>1.4.196</h2.version>
<lombok.version>1.18.6</lombok.version>
<ehcache.version>3.4.0</ehcache.version>
<junit.version>4.12</junit.version>
<datasourceproxy.version>1.4.1</datasourceproxy.version>

Wir starten mit folgenden Abhängigkeiten: Natürlich benutzen wir Hibernate Core. Als Logging Framework wurde logback eingesetzt. Die Testdatenbank, mit der alle Tests ausgeführt werden, ist h2, und zum Verwalten der Datenbankschemata benutzen wir flyway.

Dependencies
<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
    <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
    </dependency>
</dependencies>

Beispiele

Zu jedem Abschnitt in diesem Tutorial findet Ihr ein funktionsfähiges Code-Beispiel. Die Beispiele aus diesem Tutorial werden mit Maven gebaut. Die Beispiele sind als Maven Module organisiert, zu jedem Abschnitt gibt es ein einzelnes Modul.

01 beispiele

Das ganze Projekt liegt bei github unter https://github.com/eiswind/jpa-tutorial

Ihr benötigt entweder eine funktionsfähige Installation von Maven, oder eine Entwicklungsumgebung mit entsprechender Unterstützung.

Wenn Ihr die Tests in Eurer IDE einzeln ausprobieren wollt, werden diese erstmal fehlschlagen, da sie im /target Ordner eine h2-Datenbankdatei erwarten. Dazu kann man einfach einmal im root des Projekts mvn clean package -DskipTests ausführen. Dabei wird für alle Module die erforderliche Datenbank erzeugt.

Hier seht Ihr das ganze Setup im Screencast: