Frage

I verwenden EJB 3 auf einem ziemlich großen J2EE-Projekt wird standardmäßig mit Netbeans den persistenten Anbieter für den Entity-Beans TopLink setzt. Es besteht die Möglichkeit, den Anbieter zu einem der folgenden zu ändern oder sogar eine neue Persistenz-Bibliothek hinzufügen:

  • Ruhezustand
  • KODO
  • OpenJPA

Welche Persistenz-Provider bevorzugen Sie verwenden? Was sind die Vorteile der anderen Anbieter zu verwenden?

Während TopLink gut zu sein scheint, kann ich nicht viel gute Dokumentation finden, wie usw. steuern Caching Jede mögliche Hilfe würde sehr geschätzt werden.

War es hilfreich?

Lösung

Theres nur zwei PPV-Anbieter würde ich in Betracht ziehen:

Wenn Sie auf Standard JPA bleiben wollen würde ich Eclipselink verwenden. Während Toplink Essentials-die Implementierung von JPA Referenz 1.0, erbte Eclipse im Grunde die TopLink Essentials-Code und wird die Referenz-Implementierung von JPA 2.0 (und gebündelt mit Glassfish V3, wenn es Schiffe, voraussichtlich rund JavaOne Mai 2009) sein. TopLink Essentials-war eine etwas verkrüppelte Version von Oracle kommerziellen TopLink Produkt aber Eclipse haben grundsätzlich alle Funktionen TopLink hat.

Die andere Wahl ist offensichtlich Hibernate. Seine weit verbreitet und reifen aber nicht erteilen frei von dem, was ich gesehen habe. Zum Beispiel im letzten sah ich Hibernate hat Probleme mit einer Einheit, die mehrere Eins-zu-vielen eifrigen Beziehungen. Ich weiß nicht, ob Hibernate eine äquivalent zu Eclipse des Batch-Abfrage-Hinweis hat, aber sein ein unglaublich nützliches Feature mit dieser Art von Problem zu befassen.

Hibernate natürlich unterstützt auch Standard-PPV. Der größte Vorteil von Hibernate ist, dass, wenn Sie Fragen zu haben, wie es funktioniert eine Google-Suche ist wahrscheinlich, dass Ihnen eine Antwort finden.

Ich würde ehrlich gesagt nichts anderes als die beiden oben genannten Anbieter in Betracht ziehen.

Andere Tipps

Ich würde aus folgenden Gründen stark Hibernate empfehlen:

  • Die am weitesten verbreiteten Open-Source-Persistenz-Schicht in der Java-Welt respektiert werden; riesige aktive Community und vielen Einsatz in hochvolumigen unternehmenskritischen Anwendungen.
  • Sie binden sich nicht an J2EE oder einen bestimmten Anbieter überhaupt sollten Sie eine andere Route mit dem Rest der Anwendung, wie Spring gehen, usw., wie Hibernate wird immer noch schön spielen.

Ich habe Hibernate gefunden ziemlich gut dokumentiert werden, und auch durch die verschiedenen Caching-Technologien unterstützt. Ich habe es auch ein bisschen mehr als die anderen in Nicht-PPV Kontexten, so vielleicht bin ich ein bisschen auf sie voreingenommen, weil das.

Die wenigen kleinen Spielzeug-Projekte, die ich mit TopLink Essentials-habe versucht, funktionierte ziemlich gut aus auch, aber ich habe nie in Caching oder irgendetwas, das providerspezifische Dokumentation erfordern würde. Im Allgemeinen denke ich weniger Unterstützung der Gemeinschaft für, dass es, den Teil ist, warum ich mit Hibernate enden.

ich Hibernate verwenden. Es ist sehr ausgereift und funktioniert sehr gut. Ich persönlich habe keine des anderen verwendet, aber ich weiß, dass Hibernate einer der voll ausgestatteten PPV-Anbieter da draußen ist. Auch, weil so viele Leute es verwenden, gerade über jedes Problem, das ich mit ihm hätte, kann ich schnell eine Lösung mit einem wenig googeln finden.

Ich habe vor kurzem arbeitete auf einer großen Enterprise-Anwendung mit Kodo JPA-Framework aufgebaut. Die SQLs von Kodo hergestellt war in der Regel nicht sehr skalierbar mit großen Datenmengen. Meiner Meinung nach produziert es zu viele Abfragen mit Outer-Joins. Bedenkt man, wie viele Mappings wir ändern mussten, wenn kodo maßstabs versuchen, würde ich nicht empfehlen es für eine große Enterprise-Anwendung. Auch die Oracle-Vertreter sprachen wir zu versuchen, Kunden zu entwöhnen weg auf TopLink von kodo. Oracle kann kodo in Zukunft auslaufen zu lassen.

http://www.datanucleus.org ist auch ein voll-kompatibelen JPA-Provider, mit JPA1 und einige Vorschau JPA2 Features

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