PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : EntityManager Hibernate


SirWayne
17.01.2009, 18:53
Hallo zusammen,

Kann mir einer verständlich sagen/erklären, wofür man genau den EntityManager braucht und was die Vorteile gegenüber der (Hibernate)Session sind???Wenn man einen EntityManager benutzt wird dann das hibernate.cfg.xml durch die perstince.xml ersetzt oder brauch man beide????Und nutzt man ihn nur bei JEE Anwendungen oder auch bei Desktop Applikationen???

also so wie ich das ganze verstanden hab ist wenn ich den EntityManager benutze bin ich nicht von Hibernate abhängig und kann mein Peristenz Framework austauschen, oder?

danke und grüße

Revenant
17.01.2009, 23:07
Richtig. Der EntityManager ist einfach die Spezifikation von Sun an die sich die Implementierungen der Java Persistence API halten müssen. Der EntityManager ist also unabhängig von der darunterliegenden Implementierung. Der Vorteil ist halt, dass du die Implementierungen austauschen kannst und mit was standardisiertem arbeitest. Ansonsten erweitert Hibernate die in der JPA beschriebenen Funktionen halt, was wiederum für die Verwendung der Hinbernate Sessions spricht. Man braucht im Endeffekt nur noch die persistence.xml und ob jetzt Desktop Anwendung oder Web Anwendung spielt keine Rolle.

SirWayne
17.01.2009, 23:47
okay alles klar ;)

SirWayne
18.01.2009, 13:47
Wenn ich dann Hibernate benutze welche Annotations verwende ich dann z.B. @Entity die hibernate oder peristence annotations???

EagleEye
18.01.2009, 18:42
Die von jpa sind die die du verwenden musst, die von Hibernate sind nur Erweiterungen für Hibernate.

SirWayne
18.01.2009, 19:00
obwohl ich hibernate verwende?

EagleEye
18.01.2009, 19:04
Jep, weil darauf reagieren alle APIs die JPA implementieren.
Wenn du genau hinsiehst wirst du feststellen, dass du bei gleichnamingen Annotations nur unterschiedliche Eigenschaften festlegen kannst.

Revenant
19.01.2009, 19:30
Manchmal (also nicht nur hier, auch in vielen anderen Foren und auch schon bei Gesprächen mit jahrelangen Programmierern) habe ich das Gefühl, dass niemandem so wirklich der Unterschied zwischen ner API (korrekt wäre eigentlich einem API) und ner Bibliothek (Library) klar ist.

Deswegen jetzt nochmal:
die API definiert nur die Schnittstelle (Interface) und das Verhalten der darunterliegenden Implementierung (Bibliothek). Wenn wir also von der JPA (Java Persistence API) sprechen dann reden wir von einem standardisierten Interface also einer Schnittstelle die durch verschiedene Implementierungen abgebildet werden kann.