Hibernate Wie halte ich meinen Code frei von Abhängigkeiten?

anti-nerd

Mitglied
Hi zusammen!

Ich hab mich jetzt etwa 2 jahre mit javaprogrammierung beschäftigt und auch schon 2 kleinere Projekte hinter mich gebracht, jetzt gehts an die erste Webapp! In diesem Bereich hab ich also noch gar keine Erfahrung. Eine sache konnte google mir leider noch nicht beantworten.

Erstmal muss ich wissen, ob ich alles gechekct habe. Ist es zutreffend, wenn ich sage, dass hibernate eine implementation von jpa ist, die ich unter allen gängigen anwendungsservern einsetzen kann? Soviel ich herausgelesen hab ist es auf jboss zugeschnitten (?)

Wenn das soweit stimmt, was ich hoffe...

welche features bringt hibernate noch mit, die über die jpa hinausgehen? Es geht darum, dass ich versuchen möchte den code möglichst frei von irgendwelchen eigenheiten zu halten, um später jedes element nach lust und laune austauschen zu können. Ich könnte meine meinung natürlich auch ändern, z.b. wenn ich wüsste welche weiteren features es mitbringt, also wie wertvoll diese sind. momentan bin ich da etwas unsicher...

Was sagen die alten Füchse? ;)
 

DanZ

Bekanntes Mitglied
Das ist soweit ziemlich richtig (für jeden AS würd ich nicht versprechen, aber für die meisten stimmt das).

Wenn du bisher noch nie eine Webapp gemacht oder mit JPA gearbeitet hast wird dir Hibernate nichts an zusätzlichen Features bieten, was du brauchen wirst (es wird dich eher verwirren). Abgesehen davon bietet dir Hibernate ein Fallback, d.h. du kannst selbst wenn du im Grundsatz JPA als API verwendest in kritischen Abschnitten (also dort wo JPA nicht ausreicht oder zu umständlich ist) trotzdem auf die Hibernate API zurückfallen). Deshalb wirst du diese Entscheidung nicht jetzt treffen müssen.
 

anti-nerd

Mitglied
Jo, danke erstmal für die grundsätzliche bestätigung, man wird somit infos zum thema überflutuet...

gibt es reine jpa-tutorials, die unabhängig von einer implementation sind, ich hab bisher immer nur sowas wie "jpa 2 with toplink/hibernate" usw. gesehen, da hab ich schiss, dass mir dann irgendwelchen special-features beigebracht werden, die über die spec hinausgehen...das war vor allem der grund, weshalb ich das schon früh wissen wollte.
 

DanZ

Bekanntes Mitglied
Ich denke das bezieht sich in der Regel nur auf die Konfiguration. Auch wenn JPA den Provider theoretisch verstecken sollte gibt es immer noch ein paar Eigenheiten zu bedenken: man braucht e.g. andere Libaries oder die Namen von Konfigurationsparametern können anders sein.
Wenn sich das Tutorial um JPA dreht und einigermaßen gut ist, sollte es vom Code her auch nur mit JPA (2) API arbeiten - oder dir zumindest genau sagen wann JPA und wann native API benutzt wird.
Und lass dich nicht abschrecken... der Anfang, insbesondere die Konfiguration und das Erstellen des Buildprozesses, mit dem ganzen Kram (JPA, Webapps, J2EE) kann grausam sein. Aber wenn es erstmal funktioniert, dann funktioniert es für das Projekt auch länger Zeit ohne das man zwei Tage später schon wieder fluchend davor sitzt, weil irgendeine Klasse nicht gefunden wird.
 
G

Gast2

Gast
Solltest darauf achten dass du nur Klassen von javax.persistence.* verwendest dann bist du in der JPA Api...


Und lass dich nicht abschrecken... der Anfang, insbesondere die Konfiguration und das Erstellen des Buildprozesses, mit dem ganzen Kram (JPA, Webapps, J2EE) kann grausam sein.

Dagegen hilft Maven
 
M

maki

Gast
Wenn man auf Annotationen verzichtet und stattdessen Mapping Files verwendet (orm.xml, .hbm, etc. ) kann man auch seine Domainklassen frei von JPA/Hibernate/EclipseLink Abhängigkeiten halten.
 

DanZ

Bekanntes Mitglied
Dagegen hilft Maven

So sehr ich auch generell Maven Befürworter bin und so sehr es die Sache im Vergleich zum herkömmlichen Prozess vielleicht einfacher macht. Jedes mal wenn ich mit Maven ein J2EE Projekt aufsetze hol ich mir vorher ein paar Packungen Beruhigungstabletten und schließ alle für meinen Computer potenziell gefährlichen Gegenstände ein paar Tage weg ;).
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben