Hibernate查询:定位参数和命名参数

时间:2010-03-20 10:54:49

标签: java hibernate

Hibernate Query中有两种类型的查询参数绑定。一个是定位参数,另一个是参数。

我可以在一个查询中使用这两个参数吗?

2 个答案:

答案 0 :(得分:8)

确保您可以,只要您确保所有位置参数都在任何命名参数之前。下面是一个例子:

    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();

答案 1 :(得分:-1)

我不这么认为,如果你试试,请你给你以下错误:

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

你为什么要这样做?