Frage

Ich habe eine große Anwendung, die EJB-2.x-Entity Beans (BMP) verwendet. Dies ist bekannt eine schreckliche Persistenz-Strategie zu sein (ich erarbeiten kann, wenn erforderlich).

Ich möchte die Migration diese Anwendung starten eine viel ausdrucksstark, transparent zu verwenden und nicht-invasive Persistenz-Strategie, und mein Unternehmen die bisherigen Erfahrungen mit ihm gegeben, Hibernate 3.x die offensichtliche Wahl ist.

Die Migration auf Hibernate wird eine Weile dauern, da über 100 Tabellen in der Anwendung verwenden Entity Beans. Also habe ich mich auf einen schrittweisen Ansatz, bei dem die beiden Persistenz Strategien parallel laufen, idealerweise auf den gleichen Tabellen zur gleichen Zeit, wenn möglich.

Meine Frage ist, was sind die Gefahren (wenn überhaupt) diese beide Persistenz Strategien zu kombinieren? Werden sie in die Quere kommen?

War es hilfreich?

Lösung

Wie gesagt jodonnel, müssen Sie die Aufmerksamkeit auf Caching zahlen, denn wenn man Second-Level-Caching in Hibernate verwenden und eine Tabelle außerhalb von Hibernate geändert, dann Hibernate keine Möglichkeit hat, zu wissen, dass sein Cache-Eintrag veraltet ist.

Für die Transaktionen, sollten sie beide verwenden JTA von dem Behälter vorgesehen, so dass es sicher für sein sollte.

Andere Tipps

ich denke, das Ding wirklich vorsichtig zu sein mit mit den Hibernate-Sitzungen arbeiten. Hibernate Caches Sachen, und das könnte in die Quere kommen.

Ehrlich gesagt würde ich empfehlen, dass, wenn Sie Hibernate annehmen, ganz die Entity Beans fallen. Haben Ihre Hibernate Arbeit innerhalb der Session Beans und lassen Sie die Session Beans Ihre Transaktionen verwalten.

oder alternativ EJB 3, benutzen, die Hibernate in die Java Persistence API standardisiert ist.

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