Heim > Datenbank > MySQL-Tutorial > Wie kann ich die IN-Klausel von JPQL mit mehreren Werten effizient nutzen?

Wie kann ich die IN-Klausel von JPQL mit mehreren Werten effizient nutzen?

Mary-Kate Olsen
Freigeben: 2024-12-30 18:10:10
Original
1003 Leute haben es durchsucht

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

JPQL IN-Klauselerweiterung: Verwendung von Listen und Sammlungen

JPQL stellt die IN-Klausel bereit, um Entitäten basierend auf einem Satz spezifischer Werte zu filtern. Bei Szenarios mit einer beliebigen Anzahl von Werten kann die explizite Angabe jedes Parameters jedoch mühsam und ineffizient werden. In diesem Artikel wird die Möglichkeit untersucht, die Werte für die IN-Klausel mithilfe von Containern wie Arrays, Listen oder Mengen zu erweitern.

Um die Frage direkt zu beantworten, hat JPQL 2.0 die Unterstützung für die Übergabe von Sammlungen als Parameter an die IN-Klausel eingeführt. Dadurch entfällt die Notwendigkeit, jeden Wert manuell anzugeben, und die Codestruktur wird vereinfacht.

Der folgende Java-Code demonstriert diese Funktionalität mithilfe einer 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());
Nach dem Login kopieren

Es ist erwähnenswert, dass EclipseLink diese Syntax zwar unterstützt , Hibernate 3.5.1 erfordert das Einschließen des Parameters in Klammern (ein bekannter Fehler).

Das obige ist der detaillierte Inhalt vonWie kann ich die IN-Klausel von JPQL mit mehreren Werten effizient nutzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage