Ateliers JEE
Nous souhaitons développer une application de gestion de stock pour une entreprise de
commercialisation de produits informatiques.
Les marques des produits constituent une première entité. Chaque marque est définie par les
éléments suivants
Nom de la marque
Origine de fabrication
Liste des références des produits de la marque
Apple
Chine
(IMAC_32, I_MAC_27, IPHONE10,IPHONE 11, macbookpro13)
La deuxième entité métier correspond aux produits commercialisés par l’entreprise. Chaque
produit est défini par les éléments suivants :
Référence du produit
La marque du produit
Dénomination
Prix
Poids
Volume
1
Un exemple d’un produit pourrait correspondre aux éléments suivants :
IPHONE10
Apple
Smartphone
10 000,00
0,2
0,0002
Nous souhaitons, dans un premier lieu, développer la partie correspondant à la gestion des
produits. Pour cela, il faudra :
Commentaires :
2
@OneToMany
public List<Produit> ListeDesProduits=new ArrayList<>();
o Définir un constructeur prenant en argument le nom de la marque et le pays
d’origine. Ne pas oublier de déclarer un constructeur sans argument.
Pour l’entité Produit,
o La clé primaire est la référence du produit (doit être signalé par l’annotation
@Id).
L’attribut correspondant à la marque fait référence à une clé
étrangère avec une relation de type *,1. Pour ce faire utiliser
l’annotation @ManyToOne avec un code du type :
@ManyToOne
public Marque MarqueProduit;
o Définir un constructeur prenant en argument la référence du produit, la
référence de la marque du produit, la dénomination, le prix, le poids, et le
volume. Ne pas oublier de déclarer un constructeur sans argument en
appelant super.
Pour l’EJB session facade pour l’entité Marque, coder les quatre méthodes de
création, de suppression, de liste des marques, et de rajout de produit.
o Pour la méthode de création, de préférence lui faire renvoyer un booléen.
Prendre en argument le nom de la marque ainsi que le pays d’origine.
Vérifier que le nom n’est pas référencé dans la base de données. Si c’est le cas,
renvoyer faux, sinon appeler le constructeur et renvoyer vrai pour signifier la
réussite de la création.
o Pour la suppression, rester dans la même logique et renvoyer aussi un
booléen.
o Pour la méthode de listing des produits d’une marque, prendre en argument
le nom de la marque. Utiliser la méthode find et renvoyer un type
List<Produit> en utilisant le getter sur l’attribut correspondant.
o Pour le rajout de produit, prendre en argument, une marque et un produit.
Appeler la méthode add sur l’attribut listeProduits de marque, puis la
méthode merge de l’entity manager pour mettre à jour la base de données.
Pour l’EJB session façade pour l’entité Produit, coder l’ensemble des méthodes. Faire
attention :
3
o Pour la création d’un produit, il faut s’assurer que la référence du produit
n’est pas référencée dans la BD, mais aussi s’assurer que le nom de la marque
est référencé dans la BD.
o Pour le listing global des produits, renvoyer un type : List<Produit> en faisant
appel à la méthode findAll.
Une fois que les produits et les marques sont bien référencés dans la BD, on souhaite
maintenant implanter la partie du code qui va permettre de gérer le stock de l’entreprise
avec une visibilité sur les disponibilités des produits.
4
La classe ListeDeStock considérant un attribut unique de type :
List<ElementDeStock>.
Une fois ces deux classes définies, on pourra définir l’entité métier correspondant au stock.
Généralement une entreprise possède plusieurs stocks (par exemple, le stock d’exposition
des magasins, les stocks dans les différents dépôts, le stock en route, etc.). Pour cela chaque
stock sera défini par les éléments suivants
Nom du stock
Liste de stock
StockMagasinCasablanca
((IMAC,10), (IPHONE,34), (macobookpro,8))
Etant donné que liste de stock est un attribut de l’entité Stock, il est nécessaire que les deux
classes ElementDeStock et ListeDeStock implémentent l’interface Serializable.
Nous allons, ensuite, définir un EJB session façade pour le traitement des stocks en
implémentant les méthodes suivantes :
5
Modalités d’évaluation des ateliers JEE
Possibilité de travailler en binôme.
Retour en 3 phases
Un rapport sous forme d’une screen vidéo adressant les deux points
suivants :