30.01.2015 Views

des enterprise beans - Département Informatique

des enterprise beans - Département Informatique

des enterprise beans - Département Informatique

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Exemple du bean entité bank<br />

Exemple du bean entité bank<br />

L’exemple bank montre comment utiliser <strong>des</strong> <strong>beans</strong> entité. Il inclut deux<br />

implémentations de la même interface distante Account. L’une utilise la<br />

persistance gérée par le bean, l’autre par le conteneur.<br />

Le bean entité SavingsAccount, qui utilise la persistance gérée par le bean,<br />

représente <strong>des</strong> comptes d’épargne. Si vous examinez le code du bean<br />

entité, vous verrez qu’il comprend <strong>des</strong> appels directs à JDBC.<br />

Le bean entité CheckingAccount, qui utilise la persistance gérée par le<br />

conteneur, représente <strong>des</strong> comptes chèques. Il se repose sur le conteneur<br />

pour implémenter la persistance, mais pas vous, le développeur du bean.<br />

Un troisième <strong>enterprise</strong> bean appelé Teller transfère les fonds d’un<br />

compte à l’autre. C’est un bean session stateless qui montre comment les<br />

appels à plusieurs <strong>beans</strong> entité peuvent être regroupés dans la même<br />

transaction gérée par le conteneur. Même si l’opération de crédit se<br />

produit avant l’opération de débit au cours de l’opération de transfert, le<br />

conteneur annule (rollback) la transaction si le débit échoue, et ni le débit<br />

ni le crédit n’est effectif.<br />

Vous trouverez le code complet de l’exemple bank dans le répertoire /<br />

Borland/AppServer/examples/ejb/bank.<br />

L’interface locale d’un bean entité<br />

Plusieurs <strong>beans</strong> entité peuvent partager les mêmes interfaces locale et<br />

distante, même si un bean utilise la persistance gérée par le conteneur et<br />

les autres la persistance gérée par le bean. Les deux <strong>beans</strong> entité<br />

SavingsAccount et CheckingAccount utilisent la même interface locale,<br />

AccountHome. Ils utilisent également la même interface distante Account.<br />

L’interface locale d’un bean entité est très semblable à l’interface locale<br />

d’un bean session. Elles étendent la même interface javax.ejb.EJBHome.<br />

L’interface locale <strong>des</strong> <strong>beans</strong> entité doivent inclure au moins une méthode<br />

find. La méthode create() est facultative.<br />

Voici le code de l’interface AccountHome :<br />

public interface AccountHome extends javax.ejb.EJBHome {<br />

Account create(String name, float balance)<br />

throws java.rmi.RemoteException, javax.ejb.CreateException;<br />

Account findByPrimaryKey(AccountPK primaryKey)<br />

throws java.rmi.RemoteException, javax.ejb.FinderException;<br />

java.util.Enumeration findAccountsLargerThan(float balance)<br />

throws java.rmi.RemoteException, javax.ejb.FinderException:<br />

}<br />

L’interface locale AccountHome implémente trois métho<strong>des</strong>. Alors que la<br />

méthode create() n’est pas obligatoire pour les <strong>beans</strong> entité, l’exemple<br />

D é veloppement <strong>des</strong> <strong>beans</strong> entité 10-11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!