带有集合约束的 HQL 失败
HQL with in set constraint fails
我想在列表中查找 id 字段的聚合。你如何让它工作:
final String ihql = "SELECT sum(revenue) from LineItemR where variantID in (:vid) and dtime>:dt";
List<Long> idList = new ArrayList<>(varIds);
return (double) Hibernate.getSessionFactory().openSession()
.createQuery(ihql)
.setParameter("dt", dtime)
.setParameter("vid", idList)
.uniqueResult();
失败并出现以下错误:
信息:无法将值“[18992199174]”绑定到参数:1;
java.util.ArrayList 无法转换为 java.lang.Long
线程 "main" java.lang.ClassCastException 中的异常:java.util.ArrayList 无法转换为 java.lang.Long
如果您使用的是 Hibernate 而不是 javax.persistence.Query,您可能需要使用他们的 setParameterList()
方法而不是 setParameter()
。
我想在列表中查找 id 字段的聚合。你如何让它工作:
final String ihql = "SELECT sum(revenue) from LineItemR where variantID in (:vid) and dtime>:dt";
List<Long> idList = new ArrayList<>(varIds);
return (double) Hibernate.getSessionFactory().openSession()
.createQuery(ihql)
.setParameter("dt", dtime)
.setParameter("vid", idList)
.uniqueResult();
失败并出现以下错误:
信息:无法将值“[18992199174]”绑定到参数:1;
java.util.ArrayList 无法转换为 java.lang.Long
线程 "main" java.lang.ClassCastException 中的异常:java.util.ArrayList 无法转换为 java.lang.Long
如果您使用的是 Hibernate 而不是 javax.persistence.Query,您可能需要使用他们的 setParameterList()
方法而不是 setParameter()
。