Où faire mes contrôles avant persistence ?
C'est peut-être une question bête mais je me la pose... :roll:
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:
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:
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 ?