Bonjour,
Je développe actuellement une application dont la couche métier s'appuie sur Hibernate 3.2. Côté couche présentation j'ai des écrans de recherche dont les formulaires de recherche contiennent beaucoup de champs (plus de 50 en moyenne).
Mon problème est le suivant :
Pour l'instant, les méthode de la couche Service qui appellent des Dao Hibernate sont de la forme public List<Entity> search (field1, field2, ... field n)
C'est tout à fait ridicule de passer autant de paramètres à une fonction, j'en conviens. Je ne peux pas passer en paramètre un objet Entity et travailler avec l'API Example d'Hibernate car pour une propriété date, il y a 2 champs et pas simplement le champ date de mon objet Entity. On recherche une date entre une borne inférieure et une borne supérieure.
Je projette donc de créer une classe/interface SearchCriteria<T> qui représenterai un set de Criteria ou de DetachedCriteria. Cela me permettrait de ne passer qu'un seul objet et de ne pas multiplier le nombre de paramètres.
Ne voulant pas réinventer la roue je suis à la recherche d'exemples concrets ou de retours à ce sujet.
Je pense que quelqu'un a déjà pensé à la gestion d'un nombre important de critères de recherche dans une recherche multi-critère avec Hibernate ? non ?
Merci d'avance,
Julien.
Partager