Hibernate vs. EclipseLink vs. Toplink

Allgemeine Themen rund um Java

Moderator: wegus

kuax
Beiträge: 11
Registriert: 28.10.2009, 09:58

Hibernate vs. EclipseLink vs. Toplink

Beitragvon kuax » 04.11.2009, 13:16

Hallo,

ich hoffe ich mach da mal jetzt kein Faß auf ;-)

Aber hat einer mal einen Tip mit welchen der drei Varianten ich am besten anfange. Bisher habe ich JDBC benutzt und will/muß mich JPA beschäftigen. Netbeans unterstützt ja wohl auch alle drei Frameworks.

schon mal danke

Grüße

Andreas

Michael

Re: Hibernate vs. EclipseLink vs. Toplink

Beitragvon Michael » 04.11.2009, 14:23

Hallo,

kuax hat geschrieben:ich hoffe ich mach da mal jetzt kein Faß auf ;-)


Das ist bei der Fragestellung wirklich zu befürchten.
Aber wenn schon, dann sollte es Rotwein sein.

kuax hat geschrieben:Aber hat einer mal einen Tip mit welchen der drei Varianten ich am besten anfange. Bisher habe ich JDBC benutzt und will/muß mich JPA beschäftigen. Netbeans unterstützt ja wohl auch alle drei Frameworks.


Ich würde zu Hibernate tendieren, weil es OpenSource ist.
Da gibt's auch ne Menge Literatur zu.
Ist aber wohl eher "Geschmacksache".

( Zu Ecl****Link will ich mich hier nicht äußern, ist schließlich ein NetBeans-Forum. :wink: )

Gruß
Michael

Benutzeravatar
arittner
Beiträge: 3230
Registriert: 05.08.2008, 06:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Hibernate vs. EclipseLink vs. Toplink

Beitragvon arittner » 05.11.2009, 08:23

Moin!

EclipseLink wird der "Nachfolger" von TopLink werden, soweit ich das verstanden habe. EclipseLink ist aber erst gerade so bei JPA 1.2 angekommen, wo TopLink schon länger war. TopLink Essentials ist m.E. recht stabil. EclipseLink habe ich noch nicht eingesetzt und Hibernate ist ggü. TopLink ziemlich mächtig, aber dafür auch (schon bei den mitgelieferten Optional Features) ein dickerer Brocken.

TopLink macht mir nur Probleme bei Bulk-Inserts. Wenn man da mit persist arbeitet, bekommt man nach wenigen tausend Datensätzen ein OutOfMemoryError, wenn nicht rechtzeitig ein commit gemacht wird - das ist bei manchen Anwendungen unumgänglich - dann muss man sich mit native inserts behelfen (also doch wieder sowas wie JDBC). Die Verwaltung der managed Entites ist da wohl sehr ineffizient. Als Alternative wird da gerne openJPA angegeben, weil der Footprint ein Zehntel von TopLink und Hibernate sein soll. Aber openJPA habe ich mir überhaupt noch nicht angeschaut.

Von der performance kann ich keine sehr großen Unterschiede zwischen Hibernate und TopLink erkennen. Beide haben ihre Problembereiche und bei beiden kann man das irgendwie mit proprietären Optionen aus der Welt schaffen. Aber JPA ist selten so schnell wie perfekt ausprogrammiertes JDBC. Aber das würde mich nicht davon abhalten trotzdem JPA statt JDBC zu nehmen. Wie sind ja auch Java-Entwickler und keine Assembler-Frickler ;-)

Beste Grüße,
Aljoscha
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

kuax
Beiträge: 11
Registriert: 28.10.2009, 09:58

Re: Hibernate vs. EclipseLink vs. Toplink

Beitragvon kuax » 10.11.2009, 07:40

Hallo,

danke für die Tips.

Habe es mit Hibernate versucht und sogar Daten aus der Firebird-Datenbank rausbekommen :wink:
Die Unterstützung von Netbeans ist in dem Bereich auch wieder genial.


Grüsse

Andreas

Benutzeravatar
arittner
Beiträge: 3230
Registriert: 05.08.2008, 06:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Hibernate vs. EclipseLink vs. Toplink

Beitragvon arittner » 10.11.2009, 09:35

Moin!

Sehr schön. Ich nutze auch Firebird - eine sehr schöne, wenn auch nicht in Java geschriebene Datenbank. Aber der JDBC-Treiber ist absolut sauber und spitzenmäßig und vom Entwickler extrem gut supported. Auch die JPA Integration wirft keine Fragen auf. M.E. gehört Firebird zu den Datenbanken, die ich immer als erstes nehmen würde, wenn es keine pure Java DB sein sollte.

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

rgirsten
Beiträge: 1
Registriert: 19.12.2009, 11:21

Re: Hibernate vs. EclipseLink vs. Toplink

Beitragvon rgirsten » 19.12.2009, 12:23

Hallo,
ich bin irgendwie auf diesen Forum-Thread gestoßen. Ich bin beim globalen Oracle Product Support u.a. für das Produkt TopLink (EclipseLink) zuständig.
Es gibt nicht überagend viele TopLink-Kenner, die sich auf deutschsprachigen Foren tummeln, eben auch keine Produktmanager, die das als Teil Ihrer Arbeit tun. Deswegen werde ich mich zum Thema kurz äußern.

TopLink ist ein Persistenz-Framework mit langer Geschichte und wurde zuerst für Smalltalk implementiert und kurz nachdem Java verfügbar war, auf diese Platform portiert.
TopLink wurde als Grundlage für die Reference Implementierung von EJB 3.0 Java Persistence (JPA 1.0) gewählt. Zu diesem Zweck wurde das Projekt "TopLink Essentials" als Teil von "Glassfish" gestarted. TopLink Essentials wurde folglich als Open Source - Projekt unter Sun's CDL Lizenz entwickelt. "TopLink Essentials" wurde funktional gegenüber dem kommerziellen Produkt "TopLink" erheblich abgespeckt. Leider wurde neben einigen fortgeschrittenen Merkmalen auch JDBC-Batch-Writing entfernt. Dies führt bei Vergleichen der Schreib-Performance gegenüber anderen JPA-Providern zu schlechten Ergebnissen.
Das kommerzielle Produkt "TopLink" wird seit version 10.1.3.1 auch mit "TopLink Essentials" als JPA-Provider geliefert. Kommerzieller Support ist mit einem Support-Vertrag für das kommerzielle Produkt "TopLink" möglich. Ein solcher ist aber mit einer entsprechenen Lizenz für Oracle Application Server oder WebLogic Server bereits enthalten. Über Sun's Support für Glassfish und TopLink Essentials kann ich nichts sagen.
Schließlich ist die Entscheidung gefallen, den gesamten TopLink Source Code der Eclipse Foundation zu stiften, um in diesem Rahmen das Eclipse Java Persistence Projekt zu starten. EclipseLink beinhaltet jetzt also den kompletten Leistungsumfang der kommerziellen Version von "TopLink" inklusive "Cache Coordination", "Invalidation Policies", "Oracle-VPD-Support" und natürlich auch das wichtige Basis-Feature "JDBC Batch Writing". EclipseLink wird unter der sehr liberalen EDL Open Source Lizenz entwickelt, welche sehr viel mehr Freiheiten läßt als die LGPL Lizenz die für Hibernate verwendet wird. EclipseLink wurde als Referenz Implementierung für JPA 2.0 gewählt und steht seit kurzem mit EclipseLink 2.0 als erster JPA 2.0 Provider zur Verfügung
Es gibt weiterhin das kommerzielle Produkt "TopLink" welches nun im wesentlichen auf EclipseLink aufsetzt. Zusätzlich ist noch ein Runtime Java Archiv für TopLink-Legacy-Anwendungen und eine entsprechende Mapping Workbench enthalten, Integration für WebLogic Server und Oracle Container for J2EE (OC4J) und TopLink Grid welches eine Integration mit Oracle Coherence (Data-Grid) darstellt.

Es gibt eine Menge von Gründen, die für TopLink bzw. EclipseLink als Persistenz-Framework erster Wahl sprechen.

z.B.
- über viele Jahre ausgereift (Verwendung nahezu in vielen Java Middleware-Produkten, z.b. SOA Suite, WebCenter, ADF, BI Publisher, ...)
- universelles Persistenz-Framework, nicht nur ORM, sondern auch OXM (Object-XML-Mapping) und Object-EAI-Mappings.
- sehr viele mögliche Mappings, die weit über den Funktionsumfang von JPA hinausgehen.
- hervorragende Performance, gerade bei Applikationen, die eine hohe Leserate verglichen relativ zur Anzahl von Schreiboperationen haben. TopLink/EclipseLink verfügt über einen Object-Cache und nicht über einen Row-Cache wie Hibernate (Bitte keine Trivial-Benchmarks mit Batch-Inserts unter Benutzung von einfachen Mapping von Entity zu einer Tabelle und ausschließlichen Direct-To-Field-Mappings)
- Standard-Persistenz-Engine von WebLogic Server 10.3.2, Oracle Application Server, Glassfish
- Hervorragende Unterstützung inclusive Extensions in JDeveloper und Eclipse, gute Unterstützung in Netbeans.
- Liberale Open Source Lizenz (EDL)
- Rege Unterstützung durch die Mailingliste
- JPA Referenz Implementierung
- minimale Abhängigkeiten zu anderen Java Archiven verglichen mit Hibernate. Unverträgliche Abhängigkeiten zwischen verschiedenen Java Archiven führen manchmal zu der Herausforderung eine noch mögliche Classloading-Konfiguration zu finden.
- Kommerzieller weltweiter Support ist möglich

Viele Grüße,
Reinhard


Zurück zu „Java - Allgemeines“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron