java - hql查询形成

标签 java hibernate

我想构造一个 hql 查询,例如

select PLAN_ID from "GPIL_DB"."ROUTE_PLAN" where ASSIGNED_TO 
      in ('prav','sheet') and END_DATE > todays date

我是这样做的,但是在设置参数时出现错误

s=('a','b');
Query q = getSession().createQuery("select planId from RoutePlan where assignedTo in REG ");
if(selUsers != null) {
   q.setParameter("REG", s);
}

我哪里做错了?请帮助执行这个包含 in 子句的基于 hwl 的查询

最佳答案

您需要在查询中分配参数列表。另请注意参数周围的括号,因为它是“in”查询。

Query q = getSession()
      .createQuery("select planId from RoutePlan where assignedTo in (:REG) ");
if(selUsers != null) {
   q.setParameterList("REG", s);
}

您可以在 the hibernate reference 中阅读有关如何在 HQL 中使用参数的更多信息。 ,但这是从那里粘贴的相关示例:

//named parameter list
List names = new ArrayList();
names.add("Izi");
names.add("Fritz");
Query q = sess.createQuery("from DomesticCat cat where cat.name in (:namesList)");
q.setParameterList("namesList", names);
List cats = q.list();

关于java - hql查询形成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003661/

相关文章:

java - 从 POJOS 生成 Hibernate 映射文件 (*.hbm.xml)?

java - 如何在数独程序 Java 中创建子网格和分隔线?

java - Spring Security 许多提供商

java - Magnolia Blossom 模块找不到 .jsp 模板

hibernate - Spring Boot 父子关系

java - 找不到 persistence.xml

java - Spring 安全: Unable to autowired DAO in the UserDetailsService class

java - 函数嵌套

java - Hibernate repo查询访问mongodb嵌入文档

java - 组织.hibernate.HibernateException : More than one row with the given identifier was found