Re: [Cantharella-devel] Utilisation d'hibernate Search pour la recherche
Re-bonjour, Parfait si vous avez pu vérifier qu'Hibernate Search est le meilleur candidat pour nos besoins. Concernant le choix entre la mise en place par annotations sur les entités ou par programmation, je serais plus d'avis à utiliser les annotations. En effet, le projet Cantharella est déjà très orienté annotation. Que ce soit pour Hibernate ou pour Spring, nous avons toujours essayé de les privilégier et de minimiser au maximum les fichiers de configuration XML (avec aussi un effort de passer par de la configuration par programmation lorsque les annotations ne sont pas possibles). L'utilisation par annotation étant par ailleurs le mode de fonctionnement par défaut d'Hibernate Search, il serait dommage de ne pas en bénéficier. Je comprends bien toutefois l'argument de vouloir centraliser dans une ou plusieurs classes l'ensemble du code se rapportant à Hibernate Search pour des raisons de modularité. C'est souvent l'inconvénient de ces systèmes d'annotations centrés DAO, cependant en contre partie ils ont l'avantage d'offrir une vision claire de l'ensemble des contraintes et fonctionnalités liées au modèle. Actuellement, les classes DAO comportent déjà des annotations d'hibernate/JPA (Hibernate Annotation, Hibernate Validation, javax.persistence) ou même d'autres annotations personnalisées pour des validations métiers. Le fait de rajouter d'autres annotations pour préciser les champs à indexer ne me pose donc pas plus de problème que cela. Les requêtes pourront par contre être factorisées dans des classes à part (par exemple, une classe pour chaque entité) dans un package spécialisé de la couche DAO. Cette question mérite certainement d'être discutée plus amplement. Peut-être pourrions-nous aborder ce point à la prochaine réunion ? Bonne journée, Adrien Le 09/11/2012 05:34, Benjamin POUSSIN a écrit :
Bonjour,
Il semble que la solution Hibernate Search conviendrait à notre besoin pour la recherche.
On peut la mettre en place soit par des annotations sur les entités soit par programmation.
Je propose de la mettre en place par programmation, pour que tout le travail soit à un seul endroit (une classe) et ainsi permettre de facilement la retirer pour mettre une autre solution si besoin ou mettre à jour la solution si le modèle évolue sans devoir reprendre chaque classe d'entité une par une.
Est-ce que cette solution convient à tout le monde ?
-- Adrien Cheype Ingénieur en Systèmes d'Information Service « Informatique Scientifique et Appui aux Partenaires du Sud » Direction du Système d'Information (DSI) http://www.ird.fr/dsi/ http://www.ird.fr/informatique-scientifique/ INSTITUT DE RECHERCHE POUR LE DEVELOPPEMENT BP A5 - 98848 Nouméa - Nouvelle Calédonie Tél. +687 260 789
participants (1)
-
Adrien Cheype