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é :
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 !");
        }
 
    }
Est-ce une bonne chose ou devrais-je remonter d'un niveau et faire ces contrôles dans le Session-bean ?

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 ?