Hibernate HQL Query: Wie setze ich eine Sammlung als benannten Parameter einer Abfrage?

Lesezeit: 1 Minute

Benutzer-Avatar
karlgrz

Angesichts der folgenden HQL-Abfrage:

FROM
    Foo
WHERE
    Id = :id AND
    Bar IN (:barList)

ich setze :id unter Verwendung des Query-Objekts setInteger() Methode.

Ich möchte einstellen :barList Verwendung einer List von Objekten, aber wenn ich mir die Hibernate-Dokumentation und die Liste der Methoden anschaue, sehe ich keine offensichtliche Wahl, welche verwendet werden soll. Irgendwelche Ideen?

Benutzer-Avatar
Jason Cohen

Verwenden Query.setParameterList(), Javadoc hier.

Es stehen vier Varianten zur Auswahl.

  • Vielen Dank für den Hinweis! Ich habe das beim Betrachten der JavaDoc völlig übersehen.

    – karlgrz

    20. Februar 2009 um 17:01 Uhr

  • D: Oh nein, defekter Link (…schmerzhaft typisch für die JBoss-Dokumentation)

    – Mattball

    15. September 2010 um 19:22 Uhr


  • Das funktioniert nur, wenn Sie ein Hibernate-Query-Objekt verwenden, aber nicht, wenn Sie importieren javax.persistence.Query. Nur meine zwei Cent.

    – Niel de Wet

    14. Oktober 2013 um 20:21 Uhr

Bei HQL bin ich mir nicht sicher, aber in JPA rufen Sie einfach die Abfrage auf setParameter mit dem Parameter und der Sammlung.

Query q = entityManager.createQuery("SELECT p FROM Peron p WHERE name IN (:names)");
q.setParameter("names", names);

wo names ist die Sammlung von Namen, nach denen Sie suchen

Collection<String> names = new ArrayList<String();
names.add("Joe");
names.add("Jane");
names.add("Bob");

Im TorpedoAbfrage es sieht so aus

Entity from = from(Entity.class);
where(from.getCode()).in("Joe", "Bob");
Query<Entity> select = select(from);

  • Wie beantwortet das die Frage? Bitte posten Sie keine Links zu Ihrem Projekt, wenn diese das Problem nicht direkt ansprechen.

    – Matte

    1. November 2011 um 11:03 Uhr

  • Es generiert eine Hql-Abfrage mit einer In-Bedingung

    – xjodoin

    1. November 2011 um 17:19 Uhr


1144810cookie-checkHibernate HQL Query: Wie setze ich eine Sammlung als benannten Parameter einer Abfrage?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy