Wenn die Datenbank der Contract sein soll, sprich die DDL, dann sollte sich alles an der Datenbank orientieren. Es gibt viele Gründe weshalb nicht der Persistencelayer den Contract bildet. Um nun einerseits den Aufwand zum Implementieren diverser Entities zu minimieren und andererseits auch das Synchronisationsproblem zwischen dem Datenbankschema und dem Persistenlayer bzw. den Entitäten zu beheben, bietet Maven die Möglichkeit ein sog. Reverse-Engineering durchzuführen. Das heißt anhand der Datenbank werden die Entitäten generiert.
Im wesentlichen bedeutet dies Konfigurationsaufwand.
Man fügt in die POM folgendes Plugin ein und passt es entsprechend an:
pom.xml
Eine Verbindung zur Datenbank wird natürlich auch benötigt, dazu benutzt man wie gewöhnlich bei hibernate die hibernate.cfg.xml Datei:
hibernate.cfg.xml
In der reveng.xml kann man Tabellenfilter und Mappingkonfigurationen vornehmen, wie z.B. verschiedene Datentypen von sql in Java gemappt werden sollen:
reveng.xml