我正在努力理解我在 HQL 查询中的错误:
public List<Pats> getIds(List<String> patIds) {
Session session = getSession();
String hql = "from OurPats where patId = any (:patIds)";
// String hql = "from OurPats where patId in (:patIds)";
return session.createQuery(hql).setParameterList("patIds", patIds).list();
Run Code Online (Sandbox Code Playgroud)
}
...注释掉的行工作正常,但我希望非工作 ANY 比较的功能,因为 patIds.size() 可以大于 2^15(导致 postgresql 中断)。
从http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html来看,ANY 函数应该可以工作。在其他论坛问题中,人们说不要使用上面链接中规定的元素功能(我已经尝试过元素,但出现 IDENT 错误)。上面的代码产生一个 org.hibernate.hql.ast.QuerySyntaxException:意外令牌::错误。
有任何想法吗?感谢帮助。