#

Was besonders an Hibernate ist

Hibernate erlebt einen recht großen Hype und ist auch in aller Munde. Aber was ist so besonders an Hibernate?
Ich habe mal eine Reflektion dessen gemacht und denke folgendes dazu:

Ein Punkt ist, dass man Hibernate einfach über XML konfigurieren kann. Meiner Meinung nach ist dies Trivial. Jeder Java Anfänger kann seine Konfigurationen in XML auslagern.

Ein weiterer Punkt ist die flexible Austauschbarkeit einer speziellen Datenbank. Sicherlich ein wichtiger Punkt, aber selbst dass ist meiner Meinung nach nicht das besondere. Schließlich könnte man das durch eine Absraktionsschicht auf JDBC realisieren.

Der wichtigste Punkt ist meiner Meinung nach das Arbeiten mit POJOs. Ich habe schon mit Frameworks gearbeitet, die Persistenzen bieten, aber nur zum Preis einer Erbhierarchie. Man mußte EJB 2 like alle seine Objekte von einer Basisklasse erben. Very ugly.
In Hibernate kümmert das nicht. Ich schreibe mein Programm, als gäbe es kein Hibernate. Hibernate erstellt Proxyklassen, die alles kapseln, macht Kodeinjektion und sorgt dafür, dass alles in Ordnung ist.
DAS sind die Frameworks der Zukunft.

Update: Im übrigen ist Hibernate damit sehr Pattern-Konform, da das Proxy-Pattern Bestandteil der GoF Muster ist. Hingegen ist eine EJB2-artige Erbhierarchie ein Antipattern.

Entsprechend denke ich, dass es nicht sonderlich viel Sinn macht, in einem (dem) alten Framework, wo strenge Erbhierarchien vorgegeben sind, bei der man von einer Basisklasse erben muss, auf Hibernate umzuschwenken. Die Zeit kann man sich sparen oder das ganze Framework auf Hibernate und Spring aufbauend neu schreiben. Wäre sicherlich effektiver.

Tags:, , ,

4 Responses to “Was besonders an Hibernate ist” »»

  1. Comment by Toni | 3:09 10.03.07|X

    Noch besser als die Konfiguration per xml finde ich eigentlich die Möglichkeit annotations zu verwenden. Da wird zusammengeschweißt was zusammen gehört.

    Zu der Sache mit den Proxies…das ist nicht nur praktisch und schick, sondern öffnet auch Tür und Tor für ganz neue Fehlerklassen die nicht unbedingt trivial sind. Ich arbeite selbst gerne mit Hibernate, aber der proxy aspekt hat mich schon so manche debug stunde gekostet.

    Ab Hibernate 3 macht es auch wieder Spaß komplexere Queries mit HSQL oder der Criteria API zu lösen. Das war in V2 nicht grade ein Fest für die Sinne 😉

  2. Comment by Secco | 9:05 12.03.07|X

    Ja, ich finde, das die Query & Criteria API unbedingt in JDBC aufgenommen werden sollten.

  3. Comment by Ralf | 11:18 16.03.07|X

    Spring rules 😉

  4. Comment by Toni | 9:43 24.03.07|X

    Da kann ich Ralf nur zustimmen. Beim dem derzeitigen Projekt in dem ich eingesetzt bin ist alles mit Spring 2.0 gelöst. Es ist der wahnsinn wie flexibel das Projekt geworden ist. Nicht nur unterstützen die jetzt AspectJ komplett (zusätzlich zu einer kleinen,aber feinen eigenen Ascpect API), sondern bieten auch noch ein erweiterbares XML weaving Format für die Spring Beans an. Wahnsinn. Spring macht den zu schreibenden Code um 100% einfacher und lesbarer.

Leave a Reply »»

Note: All comments are manually approved to avoid spam. So if your comment doesn't appear immediately, that's ok. Have patience, it can take some days until I have the time to approve my comments.