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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Exemple du bean entité bank<br />

bank en implémente une. La méthode create() insère un nouvel objet bean<br />

entité dans la base de données sous-jacente. Si vous aviez choisi de<br />

déléguer la création <strong>des</strong> nouveaux objets entité au SGBDR ou à une autre<br />

application, vous ne définiriez pas de méthode create().<br />

La méthode create() nécessite deux paramètres, une chaîne pour le nom<br />

du compte et le montant du solde. L’implémentation de cette méthode<br />

dans la classe du bean entité utilise deux valeurs de paramètres pour<br />

initialiser l’état de l’objet entité — le nom du compte et le solde initial —<br />

lorsqu’elle crée un nouvel objet. La clause throws d’une méthode create()<br />

doit inclure java.rmi.RemoteException et java.ejb.CreateException. Elle doit<br />

également inclure les autres exceptions spécifiques à l’application.<br />

Les <strong>beans</strong> entité doivent posséder la méthode findByPrimaryKey(),<br />

l’interface AccountHome déclare donc cette méthode. Elle prend un<br />

paramètre, la classe clé primaire AccountPK, et renvoie une référence sur<br />

l’interface distante Account. Cette méthode trouve une entité compte<br />

particulière et renvoie une référence vers elle.<br />

Bien que cela ne soit pas obligatoire, l’interface locale déclare une seconde<br />

méthode find, findAccountsLargerThan(). Cette méthode renvoie un objet<br />

Java Enumeration contenant tous les comptes dont le solde est supérieur à<br />

un certain montant.<br />

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

Plusieurs <strong>beans</strong> entité peuvent utiliser la même interface distante, même<br />

lorsqu’ils gèrent leur persistance différemment. Les deux <strong>beans</strong> entité de<br />

l’exemple bank utilisent la même interface distante Account.<br />

L’interface distante étend l’interface javax.ejb.EJBObject et expose les<br />

métho<strong>des</strong> métier accessibles aux clients. Voici le code :<br />

public interface Account extends javax.ejb.EJBObject {<br />

public float getBalance() throws java.rmi.RemoteException;<br />

public void credit(float amount) throws java.rmi.RemoteException;<br />

public void debit(float amount) throws java.rmi.RemoteException;<br />

}<br />

Un bean entité dont la persistance est gérée par le<br />

conteneur<br />

L’exemple bank implémente un bean entité CheckingAccount qui illustre<br />

l’utilisation de la persistance gérée par le conteneur. Sur de nombreux<br />

points, cette implémentation ressemble à l’implémentation d’un bean<br />

10-12 Guide du dé veloppeur Enterprise JavaBeans

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

Saved successfully!

Ooh no, something went wrong!