Les descripteurs de déploiement WebLogic pour les beans permanents gérés par conteneur permettent aux applications d'utiliser une fonction de génération automatique de séquence de base de données (clé). Lorsqu'elle utilise cette fonction, une application WebLogic n'a pas besoin d'ajouter du code pour générer la clé de séquence suivante lors de la création d'objets EJB CMP. Lors de la migration d'applications WebLogic qui incluent une génération automatique de séquence, du code d'application doit être ajouté pour générer l'identificateur de séquence des nouvelles entrées.
Le fichier weblogic-cmp-rdbms-jar.xml contient des informations pour les beans entity EJB qui utilisent la persistance basée sur un système de gestion de base de données relationnelle WebLogic.
Cette règle analyse la configuration des éléments automatic-key-generation WebLogic et fournit des informations de migration pour le type de générateur Oracle.
Cet exemple montre un élément qui sera marqué par cette règle :
L'entrée generator-name indique le nom de la table DUAL Oracle à utiliser pour générer la séquence suivante.
Par exemple, si generator_name a pour valeur sequence_id, l'instruction SQL indiquée ci-après peut être utilisée pour obtenir le numéro de séquence suivant.
Si cette règle marque des entrées dans votre descripteur de déploiement weblogic-cmp-rdbms-jar.xml, vous devrez modifier manuellement votre code EJB pour créer des clés. Ces modifications doivent être effectuées avant la régénération des modules de remplacement EJB pour WebSphere Application Server. Un chemin de migration possible est illustré dans les exemples ci-après.
ejbCreate et ejbPostCreate du bean entity.ejbCreate et ejbPostCreate.create de l'objet home EJB.create() de l'objet home EJB est appelée pour transmettre le numéro de séquence suivant.Les exemples détaillés ci-après montrent comment remplacer la fonctionnalité de la logique de clé générée automatiquement par Oracle. Vous devrez écrire un code similaire pour chaque bean de la persistance gérée par conteneur qui utilise des numéros de séquence générés automatiquement par Oracle. Vous pouvez créer des classes d'aide d'utilitaire pour combiner une logique commune qui génère les numéros de séquence pour chaque bean.
ejbCreate et ejbPostCreate du bean entity.Avant :
Après :
ejbCreate.create de l'objet home EJB.Avant :
Après :
create() de l'objet home EJB est appelée pour transmettre le numéro de séquence suivant.