Utilisation de beans d'entité EJB 2.x

Bien que l'utilisation des beans d'entité EJB 2.x dans HCL Commerce soit possible, elle n'est pas recommandée.

Local interfaces et Container-Managed Relationships , qui sont les deux principales caractéristiques fournies par la spécification EJB 2.x, ne bénéficieront pas aux utilisateurs de HCL Commerce pour les raisons suivantes :

Interfaces locales
L'augmentation des performances obtenue par les interfaces locales est déjà obtenue grâce à la fonctionnalité WebSphere Application Server qui autorise la transmission par référence. Pour plus d'informations sur la transmission par référence, voir Object Request Broker tuning guidelines topic.
Relations gérées par des conteneurs
Pour minimiser la complexité d'un modèle objet, plutôt que d'utiliser les relations gérées par conteneur, une relation d'objet entre les beans métier peut être établie en ajoutant des méthodes getter explicites aux beans métier qui renvoient des beans d'accès.

Si vous choisissez de créer des beans d'entité EJB 2.x, vous devez connaître les limitations et dispositions suivantes :

  • Tous les beans d'entité référencés par EJB Query Language (EJBQL) doivent se trouver dans le même module EJB.
  • Tous les beans d'entité référencés dans EJBQL doivent être de niveau 2.x. EJBQL ne peut pas référencer les beans d'entité de niveau EJB 1.1.
  • Puisque la plupart des EJB HCL Commerce sont de niveau EJB 1.1, vous ne pouvez pas référencer la plupart des beans d'entité HCL Commerce à partir des méthodes de recherche 2.x.
  • HCL Commerce utilise les beans d'accès dans son modèle de programmation, et ces derniers ne prennent pas en charge les interfaces locales et les relations gérées par des conteneurs. Pour utiliser des interfaces locales, plutôt que des beans d'accès, vous devez effectuer une recherche d'hôte directement et le mettre en cache vous-même à des fins de performance.
  • Pour utiliser le verrouillage optimiste, vous devez l'implémenter tel que décrit dans Verrouillage optimiste avec les exceptions suivantes :
    • Vous devez étendre ECAbstractEntityBean.
    • Vous devez définir l'intention d'accès à wsOptimisticPredicate.