Bonjour,
Je débute un projet en struts/ejb2.0 à mon travail (je n'ai pas la possibilité de prendre autre chose) et je suis en train de me poser pas mal de questions; entre autre sur comment réaliser un enregistrement depuis un Bean Session Stateless qui attaque un EJB entity.
En effet, j'aimerais avant de procéder à la création d'un nouvel enregistrement dont je connais les valeurs vérifier qu'il n'existe pas déjà un doublon en base ( même PK).
J'ai donc fait le code suivant dans mon EJB session:
Le fait de passer par l'exception pour le cas standard (pas de valeur préexistante) ne me semble pas du tout propre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public void creerCompostage(String a, String b, String c, String d) throws Exception{ // Vérification des valeurs fournies if (a.trim()==null || b.trim()==null || c.trim() ==null || d.trim()==null) { throw new Exception ("Impossible de créer un compostage avec des champs vides"); // retour en erreur au niveau supérieur } // vérification de l'inexistance d'un compostage identique en base try{ CompostagePK pk = new CompostagePK(); pk.cle=a; pk.num=b; CompostageLocalHome complocal = (CompostageLocalHome) getCompostageLocalHome().findByPrimaryKey(pk); }catch (FinderException f) { // le compostage n'existe pas on peut donc le créer try{ // création du DTO pour le nouveau compostage CompostageLocalDTO compostage = new CompostageLocalDTO(); compostage.setCle(b); compostage.setNum(a); compostage.setTrim(c); compostage.setTyp(d); newCompostage(compostage); }catch (Exception e){ throw new Exception(e.toString()); } return; } // le compostage existe déjà, il va falloir sortir en erreur throw new Exception("Impossible de créer le compostage, un compostage identique existe déjà en base"); } }
J'aimerais donc savoir s'il y aurait une autre solution plus académique pour traiter ce cas.
D'autre part, est-il possible dans un bloc catch de traiter plusieurs types d'exception différents ( namingException, finderException et RemoteException); et si oui comment? parce que là aussi j'ai réduit à Exception tout court mais je ne le sens pas.
En m'excusant pour ces questions de nioubie maitrisant encore mal java et en remerciant d'avance ceux qui pourront me répondre ^^".
Outils/Normes utilisés : struts 1.1, ejb 2.0, jdev 10.0.2 avec OC4J (la version qui y est incluse)
Partager