Introduction
Ces instructions portent sur la conception des beans entity. Des conseils supplémentaires concernant entre autres
l'identification et la modélisation des beans entity figurent dans Instructions relatives au produit : Beans entity. Des conseils généraux sur les EJB
figurent dans Instructions relatives au produit : Enterprise JavaBeans (EJB).
Attributs persistants et
clé primaire
Identification des attributs persistants et de la clé primaire du bean entity.
Persistance gérée par le bean (BMP) et Persistance gérée par
conteneur (CMP)
Voir Concept : Présentation de la plateforme J2EE pour la description de ces deux
approches sur la persistance.
En général, la persistance gérée par conteneur requiert un code moindre et plus simple que la persistance gérée par le
bean. Cependant, si les performances sont critiques et qu'il faut contrôler davantage le mappage de la logique à la
base de données, vous pouvez utiliser la persistance gérée par le bean.
Si le niveau de prise en charge de votre conteneur d'EJB n'est pas celui dont vous avez besoin, vous pouvez songer à
utiliser un tiers, l'outil de mappage objet-relationnel, avec la persistance gérée par le bean ou, si l'outil est
intégré dans votre conteneur, avec la persistance gérée par conteneur.
Si vous optez pour la persistance gérée par conteneur et qu'il existe un Modèle de
données, vous pouvez mapper l'EJB entity CMP aux tables dans ce modèle. Ce mappage se reflétera finalement dans le
descripteur de déploiement des modules EJB. Pour plus d'informations, reportez-vous à Technique : Assemblage de modules J2EE.
Si vous optez pour la persistance gérée par le bean, vous devez encapsuler tous les accès à la base de données dans une
classe DAO (Data Access Object). Il s'agit simplement d'une classe Java qui masque et encapsule le mécanisme de
stockage sous-jacent et isole les changements lorsque/si l'interface de la source de données change. Même si la source
de données est supposée toujours être un SGDB relationnel (système de gestion de base de données relationnelle), il
peut y avoir quelques petites différences de syntaxe SQL et de format qui vont tirer partie de l'isolement dans une
classe DAO. Voir Core J2EE Patterns - Data Access Object Pattern ([ALU01].
|