C'est peut-être une question bête mais je me la pose...
En fait, dans toutes mes entités, je contrôle mes champs avant persistence en base dans ma fonction annotée @PrePersist et @PreUpdate !
Exemple dans mon entité :
Est-ce une bonne chose ou devrais-je remonter d'un niveau et faire ces contrôles dans le Session-bean ?
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
34 @PrePersist @PreUpdate private void validateData() throws ValidationException { if (nom == null || "".equals(nom)) throw new ValidationException("Nom invalide !"); if ( codePostal == null || codePostal.length()<5 ) throw new ValidationException("Code postal invalide ! Saisie à 5 chiffres !"); try { int cp = Integer.parseInt(codePostal); } catch (Exception ex) { throw new ValidationException("Code postal invalide ! Saisie à 5 chiffres "); } if (ville == null || "".equals(ville)) throw new ValidationException("Ville invalide !"); if ( dateNaissance==null ) throw new ValidationException("Date de naissance invalide !"); Calendar c = new GregorianCalendar(); c.setLenient(false); try { c.setTime(dateNaissance); c.getTime(); } catch (IllegalArgumentException ex) { throw new ValidationException("Date de dateNaissance invalide !"); } }
Du genre :
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 public void create(Personne personne) throws ValidationException { //mes contrôles if (personne.getNom()== null || "".equals(personne.getNom())) throw new ValidationException("Nom invalide !"); //etc... em = getEntityManager(); try { em.create(personne); } catch (ValidationException ex) { throw ex; } }
Un conseil ?
Partager