code: protected void generateEntityValues(Object entity, DAOMode mode, DAOValidatorEvaluationTime validationTime) {
  		
  		// Obtention de la classe de l'entite
  		Class<?> entityClass = entity.getClass();
  		
  		// Obtention de la liste des champs de l'entite
  		List<Field> fields = DAOValidatorHelper.getAllFields(entityClass, true);
  		
  		// Si la liste des champs est vide
  		if(fields == null || fields.isEmpty()) return;
  		
  		// Parcours de la liste des champs
  		for (Field field : fields) {
  			
  			// Chargement des annotaions de generation
  			List<Annotation> daoAnnotations = DAOValidatorHelper.loadDAOGeneratorAnnotations(field);
  			
  			// Si la liste est vide
  			if(daoAnnotations == null || daoAnnotations.size() == 0) continue;
  			
  			// Parcours de la liste des annotations
  			for (Annotation daoAnnotation : daoAnnotations) {
  
  				// Obtention de la classe de gestion du generateur
  				Class<?> generatorClass = DAOValidatorHelper.getGenerationLogicClass(daoAnnotation);
  				
  				// Le generateur
  				IDAOGeneratorManager<Annotation> generator = null;
  
  				try {
  					
  					// On instancie le generateur
  					generator = (IDAOGeneratorManager<Annotation>) generatorClass.newInstance();
  					
  					// Initialisation du generateur
  					generator.initialize(daoAnnotation, getGeneratorEntityManager(), getEntityManager(), mode, validationTime);
  					
  				} catch (Throwable e) {
  					
  					// On relance l'exception
  					throw new JPersistenceToolsException("GeneratorInstanciationException.message", e);
  				}
  				
  				// Validation des contraintes d'integrites
  				generator.processGeneration(entity, field);
  			}
  		}
  	}
docs: Méthode de generation des valeurs automatiques
  @param entity	Entité cible de la generation
  @param mode	Mode DAO
  @param validationTime	Moment d'évaluation