Maison > base de données > tutoriel mysql > Comment puis-je utiliser efficacement la clause IN de JPQL avec plusieurs valeurs ?

Comment puis-je utiliser efficacement la clause IN de JPQL avec plusieurs valeurs ?

Mary-Kate Olsen
Libérer: 2024-12-30 18:10:10
original
1003 Les gens l'ont consulté

How Can I Efficiently Use JPQL's IN Clause with Multiple Values?

Extension de la clause JPQL IN : utilisation de listes et de collections

JPQL fournit la clause IN pour filtrer les entités en fonction d'un ensemble de valeurs spécifiques. Cependant, pour les scénarios impliquant un nombre arbitraire de valeurs, spécifier explicitement chaque paramètre peut devenir fastidieux et inefficace. Cet article explore la possibilité d'étendre les valeurs de la clause IN à l'aide de conteneurs tels que des tableaux, des listes ou des ensembles.

Pour répondre directement à la question, JPQL 2.0 a introduit la prise en charge de la transmission de collections en tant que paramètres à la clause IN. Cela élimine le besoin de spécifier manuellement chaque valeur et simplifie la structure du code.

Le code Java suivant illustre cette fonctionnalité à l'aide d'une liste :

String qlString = "select item from Item item where item.name IN :names";
Query q = em.createQuery(qlString, Item.class);

List<String> names = Arrays.asList("foo", "bar");

q.setParameter("names", names);
List<Item> actual = q.getResultList();

assertNotNull(actual);
assertEquals(2, actual.size());
Copier après la connexion

Il convient de noter que même si EclipseLink prend en charge cette syntaxe , Hibernate 3.5.1 nécessite de mettre le paramètre entre parenthèses (un bug connu).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal