Der WebLogic-Implementierungsdeskriptor für CMP-Beans (Container-managed Persistence) ermöglicht Anwendungen die Verwendung eines Features für die automatische Generierung von Datenbankfolgen (Schlüssel). Bei der Verwendung dieses Features muss eine WebLogic-Anwendung keinen Code für die Generierung des nächsten Folgeschlüssels bei der Erstellung von CMP-EJB-Objekten enthalten. Bei der Migration von WebLogic-Anwendungen, die eine automatische Folgengenerierung enthalten, muss der Anwendungscode für die Generierung der Folgenkennung für neue Einträge hinzugefügt werden.
Die Datei weblogic-cmp-rdbms-jar.xml enthält Informationen für Entity-EJBs, die eine
auf dem Managementsystem für relationale Datenbanken von WebLogic basierende Persistenz verwenden.
Diese Regeln sucht nach der Konfiguration für das WebLogic-Element automatic-key-generation und stellt Migrationsinformationen
für den Generatortyp Oracle bereit.
In diesem Beispiel sehen Sie ein Element, das von dieser Regel markiert wird:
Der Eintrag generator-name gibt den Namen aus der Oracle-DUAL-Tabelle an, der für die Generierung der nächsten Sequenz verwendet werden soll.
Mit einem generator_name (Generatornamen) der sequence_id (Folgenkennung) beispielsweise kann die folgende
SQL-Anweisung verwendet werden, um die nächste Folgenummer abzurufen.
Wenn diese Regel Einträge in Ihrem Implementierungsdeskriptor weblogic-cmp-rdbms-jar.xml markiert, müssen Sie Ihren EJB-Code manuell ändern, um Schlüssel zu erstellen. Dies müssen Sie vor der neuen Generierung Ihrer EJB-Stubs für WebSphere Application Server tun. In den folgenden Beispielen ist ein potenzieller Migrationspfad beschrieben.
ejbCreate und ejbPostCreate der Entity-Bean einen Parameter hinzu.ejbCreate und ejbPostCreate fest.create von EJB-Home einen Parameter hinzu.create() aufgerufen wird, um die nächste Folgenummer zu übergeben.Die folgenden allgemeinen Beispiele veranschaulichen, wie Sie die Funktionalität der Logik der automatisch generierten Oracle-Schlüssel ersetzen können. Sie müssen für jede CMP-Bean, die automatisch generierte Oracle-Folgenummern verwendet, einen ähnlichen Code schreiben. Sie können Dienstprogrammhilfsklassen erstellen, um die allgemeine Logik, die die Folgenummer für jede Bean generiert, zu kombinieren.
ejbCreate und ejbPostCreate der Entity-Bean einen Parameter hinzu.Vorher:
Nachher:
ejbCreate fest.create von EJB-Home einen Parameter hinzu.Vorher:
Nachher:
create() aufgerufen wird, um die nächste Folgenummer zu übergeben.