Unterstützung für JPA – Hibernate Tools in Eclipse
Wer mit der Java Persistence API (JPA) arbeitet, wie zum Beispiel mit Hibernate 3 oder JEE 5, hat die Möglichkeit eine bequeme Unterstützung durch die Verwendung der Hibernate Tools in Eclipse zu bekommen.
Die Hibernate Tools sind eine Menge von Tools für Hibernate 3 und können in Eclipse als Plugins oder als Ant Tasks verwendet werden. Dabei sind die Hibernate Tools eine Hauptkomponente der JBoos Tools und somit werden sie auch von JBoss angeboten.
![]() |
![]() |
Dieser Artikel behandelt nur die Hibernate Tools als Eclipse Plugin und ist in die folgenden Abschnitten unterteilt:
- Installation des Hibernate Tools Eclipse Plugin
- Erstellen einer Hibernate Konfiguration
- Datenbankschema erstellen/aktualisieren
- Java Persistence Query Statements ausführen und testen
- Fazit
Die einfachste Möglichkeit die Hibernate Tools als Eclipse Plugin zu installieren ist über den Eclipse Update Manager (Help->Software Updates->Find and Install->Search for new features to install). Dort die JBoss Tools Update Seite (http://download.jboss.org/jbosstools/updates/stable/) hinzufügen.

Feature “Hibernate Tools” selektieren und Installation starten. Dazu einfach den Anweisungen folgen.

Die JBoss Tools können natürlich auch manuell heruntergeladen werden.
Nach der Installation steht die Hibernate Tools Perspektive zur Verfügung. In dieser Perspektive wird eine Hibernate Konfiguration erstellt. Diese Hibernate Konfiguration benötigt eine Hibernate Konfigurations Datei um die Container spezifischen Konfigurationen aus der persistence.xml zu überschreiben.
Diese Hibernate Konfigurations Datei, bei mir heißt sie “hibernate-tools.properties“, kann irgendwo im Projekt angelegt werden und muss muss folgenden Inhalt habe:
hibernate.connection.username=deinMySQLUser hibernate.connection.password=deinMySQLPw hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect hibernate.connection.url=jdbc:mysql://localhost/openwishes hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider
Natürlich sollten noch passende und gültige Daten angegeben werden. Dieses Beispiel bezieht sich auf meine lokale OpenWishes MySQL Datenbank.
Als zweites wird noch eine persistence.xml im Classpath benötigt. Und zwar muss diese Datei, die genau diesen Namen haben muss, im Ordner /META-INF liegen. Auch wenn diese Datei keine wirklichen Konfigurationen enthält, so verlangen die Hibernate Tools für die Erstellung einer Hibernate Konfiguration eben eine /META-INF/persistence.xml im Classpath. Am besten erstellt man sich den /META-INF Ordner im Source Verzeichnis.
Sind diese beiden Dateien vorhanden muss in die Hibernate Perspektive gewechselt und eine neue Hibernate Konfiguration erstellt werden. Dazu mit der rechten Maustaste auf den Hintergrund im Reiter “Hibernate Configurations” und “Add Configuration…” wählen.

Bei der Konfiguration muss als Typ “JPA” gewählt sowie das Projekt und die vorher erstellte Hibernate Konfigurationsdatei selektiert werden. Der Name kann frei bestimmt werden.

Das ganze mit OK abschließen und die Konfiguration ist erstellt. Bei Fehlern in der Konfiguration erscheinen die Meldungen der aufgetretenen Exception(s) in dem Error Log Panel. Leider wird man aus diesen oft nicht wirklich schlau daher lieber noch einmal die Erreichbarkeit der Datenbank, die angegeben Daten auf Korrektheit und die Verfügbarkeit des Treibers im Classpath prüfen um das schon einmal auszuschließen.
Wenn aber alles in Ordnung ist kann nun die neu angelegte Konfiguration aufgeklappt und zwischen den drei Auswahlmöglichkeiten “Configuration”, “Session Factory” und “Database” gewählt werden. Für einen ersten Test kann z.B. der “Configuration” Zweig aufgeklappt werden und man müsste alle im Projekt konfigurierten Entitäten aufgelistet sehen. Mit einem Doppelklick auf die Entität gelangt man in die entsprechende Java Klasse.

Ist man noch in der Entwicklung des Domain Modells und muss häufig das Datenbank Schema aktualisieren so ist das mit den Hibernate Tools eine Sache von Sekunden.
Nach der Änderung einer Entität (Klassen mit der @Entity Annotation) muss die Hibernate Konfiguration aktualisiert werden. Das erreicht man aus dem Kontextmenü (rechte Maustaste) auf den “Configuration Zweig” der eingerichteten Konfiguration und der Anweisung “Refresh”. Anschließend im Kontextmenü der Hibernate Konfiguration den Menüpunkt “Run ShemaExport” aufrufen und nach einer erneuten Bestätigung wird das Datenbankschema erneut erstellt.
![]() |
![]() |
An dieser Stelle sollte man natürlich vorsichtig sein, denn bereits in der Datenbank vorhandene Datensätze sind natürlich anschließend nicht mehr vorhanden.
Passend dazu ist ein weiteres sehr schönes Feature die grafische Darstellung des Mappings zwischen einer Entität und der Datenbanktabelle. So kann man das eben erstellte Schema ansehen und man könnte diese Darstellung auch ohne weiteres in eine Dokumentation übernehmen.
Diese Darstellung kann auch aus dem “Configuration” Zweig heraus aus geöffnet werden. Einfach mit der rechten Maustaste auf eine Entität klicken und “Open Mapping Diagram” selektieren.

Das meiner Meinung nach nützlichste Feature (neben der schnellen Aktualisierung des DB Schemas) ist das Austesten und schnelle Ausführen von Java Persistence Query (JPQ) Statements; bei Hibernate auch Hibernate Query Language (HQL) genannt und bei JEE unter dem Stichwort Enterprise Java Beans Query Language (EJB-QL) zu finden.
Den HQL Editor öffnet man aus dem Kontextemü heraus aus. In dem HQL Editor muss man noch die gewünscht Hibernate Konfiguration selektieren und kann noch die Treffermene reduzieren.
Nach dem Eingeben der Hibnerate Query und dem Ausführen, gestartet durch den grünen Pfeil oben links, erscheint in dem “Hibernate Query Result” Panel das erzielte Ergebnis. In dem dazugehörigen Properties Panel erscheinen die geladenen Daten einer einzelnen selektierten Entität. In dem Screenshot kann man sehen, dass selbst Objekte die als Referenz in der selektierten Entität bestehen mit geladen werden. In diesem Fall ist es die Entität “Item”.

Kleiner Hinweis: das Ergebnispanel öffnet sich nicht automatisch bei einer Änderung des Inhalts und es muss somit manuel selektiert werden, wenn man sich gerade in einem anderen Panel, wie zum Beispiel dem “Error Log” Panel befindet.
Bei einem HQL Fehler wird man natürlich auch wie bei einem SQL Statement darauf hingewiesen.

Ein weiteres sehr schönes Feature ist zu sehen was aus seinem HQL Statement in SQL gemacht wird, denn das größte Problem der bequemen Datenbankabfragen mit Hilfe der JPQ Statements ist die Performance. Oft werden so viele JOINS und Subselects gemacht, dass es sich aufgrund der Performance nicht lohnt ein solches Statement abzusetzen. Aber dazu sollte man natürlich wissen was Hibernate aus den HQL Statements für SQL Statements erstellt. Und genau diese Antwort liefert das “Hibernate Dynamic SQL Preview” Panel.

Die Hibernate Tools sind für die Entwicklung mit JPA eine wirklich wertvolle Unterstützung. Es ist möglich bei der Entwicklung des Domain Modells das Datenbank Schema schnell und unkompliziert zu erstellen bzw. anzupassen und das Mapping zwischen den Entitäten sowie den Tabellen mit grafischer Unterstützung zu untersuchen.
Für HQL bzw. EJB-QL Statements bietet der HQL Editor eine sehr praktische und schnelle Möglichkeit das Statement auf Korrektheit und gewünschtes Ergebnis zu überprüfen.
Auch wenn man nicht mit JPA sondern noch mit den Hibernate XML Files arbeitet bieten das Hibernate Tools Plugin eine wertvolle Erweiterung wie z.b. das Autocomplete im hbm.xml Editor.
Insgesamt kann ich das Plugin absolut empfehlen weil es die Arbeit doch sehr erleichtert, wie wir bei der Entwicklung von OpenWishes oft feststellen konnten.
Für Anmerkungen steht natürlich die Kommentarfunktion zur Verfügung.
Wenn du Fragen oder Anregungen zum Post hast, dann hinterlasse doch einen Kommentar oder wenn du weiterhin Artikel von Javathreads lesen möchtest, dann abonniere den RSS Feed und sehe direkt in deinem Feed Reader die nächsten Artikel.
Ähnliche Artikel, die dich interessieren könnten:
Kommentare
Hi Balian,
eine sehr einfache Variante ist sich Eclipse für J2EE Entwickler als fertiges Bundle herunterzuladen. Eine Übersicht der verfügbaren fertigen Bundles findest du direkt auf der Download Seite: http://www.eclipse.org/downloads/
Hier noch der direkte Link zur Download Seite von “Eclipse IDE for Java EE Developers”: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/europa/winter/eclipse-jee-europa-winter-win32.zip.
In diesem Bundle sind die notwendigsten Plugins schon vorhanden und du kannst direkt mit der Installation der JBoss Tools beginnen.
[...] Hibernate Tools am besten einrichtet und was man damit anstellen kann, wird in dem Artikel “Unterstützung für JPA – Hibernate Tools in Eclipse” ausführlich erläutert. [...]
[...] bestehen nun zwei Möglichkeiten, wenn man die Hibernate Tools dringend benötigt oder nicht auf sie verzichten [...]
Hallo Markus,
ich habe nur den Installationshinweis verwendet. Das entscheidende war dabei die Adresse der Update-Seite. (In dem Buch, das ich mir zum Thema Hibernate gekauft habe, wird über die Installation kein Wort verloren!)
Ohne den Tipp hätte ich noch lange gusucht.
Vielen Dank
Andreas
[...] werden soll. Dazu kann man entweder eine bereits durch die Hibernate Perspektive erstellte Hibernate Console Konfiguration verwenden und diese mit der Checkbox “Use Console Konfiguration” verwenden oder wie in [...]
[...] hibernate 留ä评论 1. Plugin installieren: http://javathreads.de/2008/03/unterstuetzung-fuer-jpa-hibernate-tools-in-eclipse/ http://zjb10000.javaeye.com/blog/350586 注意:先安装Hibernate Tools成功后,再安装Jboos [...]


















Hallo Markus,
ein wirklich guter Beitrag, allerdings ist die Installation nicht wirklich so einfach wie dargestellt. Mit Eclipse Europa bzw. “Full-Eclise” und der Updatesite werden immer weitere Abhänigkeiten von anderen Bibliotheken angezeigt. Wahrscheinlich sollte man sich die JBOSS-Eclipse-IDE ziehen. Das werde ich wohl tun müssen, denn anders ist es mir noch nicht gelungen. ;-(
Gruß
Balian