2014-06-19 4 views
6

Wir werden einen Service schreiben, für den wir versuchen, Technologie-Stack zu bewerten. Als Teil von ORM denken wir daran, Hibernate zu verwenden, aber von einem meiner Kollegen lernte ich ungefähr ebean. Aber wir haben keine Ahnung von Ebean.Hibernate vs Ebean als skalierbare, performante ORM

Meine Frage ist also: Gibt es irgendwelche Nachteile im Zusammenhang mit Ruhezustand, jeder SALABITY oder Performance-Engpass? Und welchen Vorteil hat eBean?

Antwort

1

Es gibt viele Probleme mit Hibernate und grundsätzlich jede Implementierung von JPA in großen und sehr skalierbaren Anwendung. Sie sollten überlegen, eine andere Lösung überhaupt zu verwenden. Probleme sind im Artikel Large Application Model issues gut beschrieben und wie das Modell in Artikel Model for large applications aussehen sollte.

1

Wie bereits erwähnt, Ebean ist Sessionless ORM, so dass Sie nicht über Sitzungen nachdenken müssen. Hibernate verfügt über einen Cache der ersten Ebene, der nicht deaktiviert werden kann. Dies bedeutet, dass wenn Sie ein Objekt über ORM abfragen und dann direkt mit SQL löschen, es im Cache verbleibt. Sie können den Cache explizit löschen, um die aktuellsten Ergebnisse aus der Datenbank zu erhalten. Leider kann ein solches Verhalten Fehler verursachen, z.

5

Was bringt Ebean auf den Tisch?

Kurz gesagt mit Ebean bringt es eine volle Funktion ORM, die viel einfacher zu bedienen und vor allem zu optimieren ist (Nun, es ist einfach, kann aber auch automatisch über Profiling erfolgen).

  • eine Abfragesprache entwickelt, um Objektgraphs Konstruktion über eine gute Unterstützung für Teilobjekte und baute in Vermeidung von N + 1

  • A "sessionless" ORM ... architected zu optimieren keine Semantik zum Anhängen/Trennen haben (das macht es einfacher zu verwenden/schnell zu meistern).

Ebean hat jetzt SQL2011 History-Unterstützung und ElasticSearch-Integration. Sie könnten argumentieren, Hibernate hat ähnliche Funktionen.

Referenz Links: