J'ai une relation multiple-Product-Category simple, où Product a un attribut List < Category> "categories", et Category a une liste < Produit> Attribut "produits". Le mappage JPA ORM fonctionne plutôt bien.Plusieurs à plusieurs JPQL @Query avec List comme argument au printemps
Dans ProductRepository, je souhaite inclure une méthode qui prend un nom partiel et une liste de catégorie en tant que paramètre et renvoie tous les produits contenant le nom donné et l'une des catégories de la liste de paramètres. Ma question est: est-il possible de spécifier ma requête dans un @Query? Comment?
@Repository
public interface ProductRepository extends JpaRepository<Product, Integer> {
@Query("SELECT obj FROM Product obj WHERE obj.name LIKE %?1 AND obj.categories ?????")
List<Product> findByNameCategories(String name, List<Category> categorias);
}
Utilisation géniale des noms standards, merci. Juste une question: la méthode renvoyait des produits répétés. Afin d'obtenir des produits distincts, j'ai remplacé le type de retour à Set < Product> mais voici ma question: apparemment toutes les valeurs répétées proviennent de la base de données, puis ils sont post-filtrés par la structure de données Set. Y a-t-il un meilleur moyen d'obtenir des valeurs distinctes? En d'autres termes: pour obtenir des valeurs distinctes directement à partir de la base de données? –