code: protected void addPredicates(CriteriaBuilder criteriaBuilder, Root<T> root, CriteriaQuery<?> criteriaQuery, List<Predicate> predicates) {
  		
  		// Si la liste de predicats est vide
  		if(predicates == null || predicates.size() == 0) return;
  		
  		// Liste de predicats JPA 2
  		List<javax.persistence.criteria.Predicate> jpaPredicates = new ArrayList<javax.persistence.criteria.Predicate>();
  		
  		// Parcours de la liste
  		for (Predicate predicate : predicates) {
  			
  			// Ajout du critere JPA
  			jpaPredicates.add(predicate.generateJPAPredicate(criteriaBuilder, root));
  		}
  		
  		// Si la liste des prdicats JPA est de taille 1
  		if(jpaPredicates.size() == 1) criteriaQuery.where(jpaPredicates.get(0));
  		
  		// Sinon
  		else criteriaQuery.where(criteriaBuilder.and(jpaPredicates.toArray(new javax.persistence.criteria.Predicate[0])));
  	}
docs: Méthode de chargement des prédicats
  @param criteriaBuilder Constructeur de critères
  @param root Objet racine
  @param criteriaQuery	Requete de critères
  @param predicates	Liste des predicats