Bonjour à tous,
Dans le cadre d'un projet universitaire, nous devons développer un site e-commerce fonctionnant sur un serveur Glassfish avec utilisation des EJB.
Nous souhaitons mettre en place un moteur de recherche avec critères (catégorie, intervalle de prix, libellé, etc.)
Notre professeur nous impose l'interface suivante :
Jusque là, pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void saveProduct(Product product); public Product getProductById(Integer id); public Product getProductByReference(String reference); public List<Product> getProductsByLabel(String label); public List<Product> getProductsByCategory(Category category); public List<Product> getProducts(); public List<Product> getProductsByPrice(Double price); public List<Product> getProductsByPriceRange(Double price1, Double price2);
Notre question est d'ordre pratique : quelle est la meilleure façon de procéder lorsque l'utilisateur rentre plusieurs critères ?
Nous avons penser à faire de la manière suivante :
Pour chaque critère (catégorie, prix, libellé, etc.), nous récupérons une liste des produits propre à chaque critère (liste1 = getProductsByCategory(1), liste2 = getProductsByPrice(25), etc.) puis nous recherchons tous les produits présents dans l'ensemble des listes. Si un produit est présent dans toutes les listes, alors il correspond aux critères de recherche.
Le fait de récupérer autant de listes ne risque t-il pas de nuire aux performances du serveur ? Par exemple, la requête de tous les produits de catégorie 1 va ramener disons 10000 entrées, pour le prix 6000 entrées, etc.
Si cette méthode n'est pas la bonne, comment pouvons nous procéder ?
Merci d'avance pour vos réponses
Partager