Hibernate EJB JTA

Christi

Mitglied
hallo!

Ich schreibe ein Arbeit über ORM Tools und verstehe nicht ganz den Unterschied zwischen EJB und Hibernate. Soweit ich weiß ist EJB eine Specification und Hibernate eine Implementierung dieser. Also kann ich EJB nicht verwenden? Was genau sind die Unterschiede zwischen den beiden? Kann ich EJB und Hibernate nicht zusammen verwenden?

EJB 3.0 beinhaltet die JTA (Java Transaction APUI). Welche Rolle spielte dieses Interface im ganzen?

Leider konnte ich auf diese Fragen in meiner Recherche keine zufriedenstellenden Antworten finden. Ich bin sehr dankbar über jede Hilfe!
 

DanZ

Bekanntes Mitglied
Dann Versuchen mir mal etwas Licht ins Dunkel zu bringen.

Hibernate ist eine Implementierung von JPA, nicht von EJB. Allerdings kann man die JPA Api in EJBs verwenden.
JPA ist eine Spezifikation der Schnittstellen und des Verhaltens eines ORMs. Das heißt, dass JPA zum einen Java Interfaces,Annotations und Klassen für die Kommunikation mit dem ORM liefert und zum anderen dokumentiert wie diese sich zu verhalten haben. Dies soll eine einheitlich definierte Struktur für den Zugriff auf die Persistenz bieten. Man braucht nur JPA kennen und muss sich nicht um die Interna der Implementierung kümmern(zumindest theoretisch).
Hibernate ist ein PersistenceProvider. D.h dass Hibernate die von JPA vorgeschriebenen Verhaltensweisen und die Angebotenen Interfaces umsetzt, die Funktionalität quasi zum Leben erweckt.
Wenn ein Benutzer mit JPA arbeitet muss er der JPA API nur mitteilen, dass sie bitte Hibernate benutzen soll. Ansonsten kann er mit den Klassen von JPA arbeiten und kriegt von Hibernate garnichts mit.
Du kannst EJB bzw. JPA also benutzen aber damit es funktioniert brauchst du Hibernate(oder eine andere Implementierung). Ansonsten ist es nur eine Fassade, die ins leere läuft.

Da ORM natürlich Datenbank basiert arbeitet sind Transaktionen nicht uninteressant und die JPA API bietet die Funktionalität für transaktionale Abläufe. "Normalerweise" kann eine JPA Implementierung selbstständig Datenbankverbindungen aufbauen und die Transkaktionen in ihr verwalten. Steht allerdings eine JTA Implementierung zur Verfügung kann auch diese genutzt werden. In diesem Fall delegiert der JPA Persistence Provider alle transaktionalen Vorgänge an das JTA System.
 

Christi

Mitglied
Danke, schonmal. Das hat mir schon weitergeholfen.

Wenn ich es richtig verstehe kann man Hibernate ohne JPA nicht verwenden, oder?
Und EJB ist für die Annotations und Mapping von POJO zuständig.
 

DanZ

Bekanntes Mitglied
Doch Hibernate kann man auch ohne JPA verwenden(das mag jetzt etwas verwirrend klingen), weil Hibernate auch eine eigene API mitbringt.Das liegt (unter anderem) daran, dass es Hibernate schon vor JPA gab und man damals eine eigene Schnittstelle entwickelt hat. Als dann die JPA Spezifikation kam wurde eine Art "Wrapper" gebaut - also eine Übersetzung der JPA Api auf die Hibernate Api.
Wenn es dir für das Verständnis hilft kann man aber sagen, dass man Hibernate in seiner Funktion als JPA Persistence Provider nicht ohne JPA verwenden kann.

EJB ist nochmal ein anderes Thema. Wenn JPA/Hibernate das Modell darstellt, dann stellen die Enterprise Java Beans vereinfacht gesagt die Logik Schicht dar. Solltest du vielleicht seperat behandeln das Thema und ist für reines ORM auch unwichtig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
S org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: right near Allgemeine Java-Themen 6
P Hibernate Proxy Allgemeine Java-Themen 1
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
Shoox Hibernate / JAXB für Schnittstellen Allgemeine Java-Themen 4
Jay_030 Guice + Hibernate = Probleme? Allgemeine Java-Themen 2
G Hibernate search (Lucene) - Index wird nicht rechtzeitig erzeugt? Allgemeine Java-Themen 2
H Hibernate: @OneToOne Beziehung Allgemeine Java-Themen 4
N Hibernate und Fehlermeldung Allgemeine Java-Themen 18
neurox Tutorial: Hibernate mit MySQL (erste Schritte) Allgemeine Java-Themen 34
P Hibernate oder Java Persistence API? Allgemeine Java-Themen 3
A Spring und Hibernate Allgemeine Java-Themen 2
MQue log4j mit hibernate Allgemeine Java-Themen 3
F Hibernate speichern - Null Allgemeine Java-Themen 5
T Wie Hibernate im Tomcat installieren? Allgemeine Java-Themen 2
M Hibernate frage zur Verbindung Allgemeine Java-Themen 3
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
G Obfuscator und Hibernate! Allgemeine Java-Themen 5
W JBoss,Axis2,Hibernate/JPA,Oracle - EntityManager Problem Allgemeine Java-Themen 4
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
J Hibernate & Java Allgemeine Java-Themen 4
A Hibernate und Swing Allgemeine Java-Themen 2
G Hibernate speichert Daten nur während Session in HSQL-DB Allgemeine Java-Themen 10

Ähnliche Java Themen

Neue Themen


Oben