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

zho*_*shu 6 java hibernate

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

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

Jes*_*run 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();
Run Code Online (Sandbox Code Playgroud)


mar*_*igo 0

我不这么认为,如果你尝试一下,休眠会出现以下错误:

org.hibernate.hql.ast.QuerySyntaxException: cannot define positional parameter after any named parameters have been defined
Run Code Online (Sandbox Code Playgroud)

你为什么想这么做?

编辑: Jeshurun 提供了一个更好的解决方案。请检查下面他的答案。