7 Stimmen

Hibernate-Abfrage: positionierte Parameter und benannte Parameter

Es gibt zwei Arten von Abfrageparametern, die in der Hibernate-Abfrage gebunden werden. Der eine ist ein positionierter Parameter und der andere ein benannter Parameter.

Kann ich diese beiden Parameter in einer Abfrage verwenden?

10voto

Jeshurun Punkte 22314

Natürlich können Sie das, solange Sie sicherstellen, dass alle Positionsparameter vor den benannten Parametern stehen. Hier ein Beispiel:

    Query q =session.createQuery("select u from User u where u.location=? and u.id in (:user_ids)");
    q.setParameter(0, location);
    q.setParameterList("user_ids", userIds);
    return q.list();

0voto

marcosbeirigo Punkte 10678

I Don't think so, wenn Sie es versuchen, hibernate Sie geben Sie die folgende Fehlermeldung:

org.hibernate.hql.ast.QuerySyntaxException: cannot define positional parameter after any named parameters have been defined

Warum sollten Sie das tun wollen?

Edit: Jeshurun bietet eine viel bessere Lösung. Bitte lesen Sie seine Antwort unten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X