【问题标题】:HQL with in set constraint fails具有 in set 约束的 HQL 失败
【发布时间】:2016-12-19 19:26:49
【问题描述】:

我想在列表中查找 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 hql


【解决方案1】:

如果您使用 Hibernate 而不是 javax.persistence.Query,您可能需要使用他们的 setParameterList() 方法而不是 setParameter()

hibernate API docs for more info.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 2023-04-09
    • 2012-10-18
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多