Frage

Ich habe die Verwendung der folgenden JPA-Implementierungen vorgenommen:

  1. Hibernate,
  2. Toplink,
  3. OpenJPA

Jeder von ihnen hat seine eigenen Stärken und Schwächen. Ich fand Hibernate die fortschrittlichste der drei der Ausnahme, dass er einen Teil seiner eigenen Erweiterungen mit JPA gemischt, die es schwierig zu anderen Anbietern wechseln aus. Am wichtigsten ist, war seine Abfrageparser viel milderen wenn JPA zu interpretieren. Sie machen es etwas schwierig die richtigen Bibliotheken zu bekommen Hibernate zu unterstützen, weil ich es eine Mission gefunden versuchen, die richtigen Versionen aller Abhängigkeiten zu erhalten.

Toplink war ok, aber man ist mit dem Gefühl verlassen, dass es ein wenig, als er gelähmt scheint Oracle will Sie verwenden / kaufen? ihre erweiterte Bibliothek. Der Versuch, es war auch eine Mission zum Download, weil Sie es über läuft eine JAR-Datei zu installieren. Ich fand, dass es nur die Basis JPA-Spezifikation implementiert. Der Grund habe ich es war überwintern viele Bibliotheken verwendet, die in anderen Open-Source-Projekte häufig verwendet werden, die man oft classloarder Probleme bekommen würde, vor allem bei der Verwendung von JBoss

OpenJPA - Das hat bei weitem die beste Dokumentation und ist einfach herunterzuladen und zu verwenden, aber es scheint, seine sehr buggy. Vielleicht meinen Code sein gerade aber Code fand ich erweiterte Anwendung wie OneToMany Beziehungen mit CascadeType.all gesetzt einfach nicht zu arbeiten schien. Zwar kann es mein Code sein, war falsch und ich habe keine Zeit einen sauberen Fall aber viele Vorfälle wie diese lassen mir Angst, es zu benutzen, um zu testen musste. Ich hoffe wirklich, es wird besser. Seine Fehlermeldungen sind oft nutzlos helfen, das Problem zu lösen.

Welche anderen Bibliotheken haben die Menschen verwendet und welche bevorzugen sie und warum?

War es hilfreich?

Lösung

Ich hatte die gleichen Schlüsse über diese Implementierungen.

  1. OpenJPA war / schien Buggy

  2. Hibernate hatte Tonnen von Bibliotheken und schien Mühe zu haben mit nicht verzögertes Laden alles.

  3. beendet Toplink als meine Wahl auf. Es war nicht so flexibel wie Hibernate gewesen wäre, aber es funktioniert und ich muss nicht installiert werden commons-logging .

Der, den ich versuchen würde, ist neben JPOX, die Datanucleus .

Andere Tipps

Persönlich fühle ich mich nicht OpenJPA genug noch reif ist. Es gibt auch andere Open-Source-Bibliotheken, die reifer sind und ich würde lieber diejenigen verwenden. Dies sind die, die ich in Betracht ziehen würde, um:

  1. Ruhezustand. Hibernate ist seit langer Zeit um und hat den Weg für ORM in Java wirklich geebnet. Das einzige Problem, das ich mit Hibernate haben, ist die Lizenzierung. Es ist LGPL, die einige kommerziellen Unternehmen winden kann zu (aus Gründen, ich werde hier nicht näher eingehen). Wie auch immer, wenn LGPL ein Problem für Sie ist, ist es wahrscheinlich gut klar zu steuern.

  2. Eclipse. Einige Hintergrundinformationen auf Eclipse. Toplink Essentials-war Oracle kostenlose Version ihrer JPA-Implementierung. Eclipselink wurde von Toplink, Oracle ausgewachsenen JPA-Implementierung genommen. Eclipse wird die JPA 2.0-Provider für Glassfish v3.0 sein, so dass es aussieht wie alles bewegt sich weg von Toplink Essentials und zu Eclipse. Obwohl die Eclipselink-Version 1.0.2 ist, hat das Produkt schon seit langer Zeit unter anderen Namen.

Ein Projekt, das ich auf mich arbeiten, ist auf Toplink Essentials-jetzt aber wir planen in Kürze zu Eclipselink zu wechseln. Hibernate war heraus für die Lizenzfragen ich bereits erwähnt.

OpenJPA als Kodo bekannt, das ist das, was BEA vor ziemlich lang gekauft. Kodo war die Umsetzung von JDO und jetzt JPA. Außerdem verwenden wir OpenJPA recht intensiv. Ich woudn't So sagen, dass es nicht reifen. Es ist in Ordnung aber ich würde vorschlagen, Hibernate zu verwenden, nämlich JPA Wrapper um Hibernate.

Reason? 1) JPA ist sehr, sehr ähnlich Hibernate 2) Viele Arbeitsplätze hat Hibernate Anforderung. Es ist besser, zu Mainstream-Produkten zu lehnen ... im Grunde

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top