2016-08-12 57 views
0

我想查找列表中id的字段的聚合。你如何得到這個工作:設置約束條件下的HQL失敗

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中

異常在線程 「主要」 java.lang.ClassCastException:java.util.ArrayList中不能轉換爲java.lang.Long中

+0

你的錯誤信息是什麼? –

回答

1

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

請參閱 hibernate API docs for more info