[英]Return Map from hibernate
我正在嘗試從HQL創建Map對象
這是我的代碼
我面臨異常:
java.lang.ClassCastException:無法將java.util.ArrayList強制轉換為java.lang.Long
List<Map<Long, Long>> test = new ArrayList<Map<Long, Long>>();
try {
String HQL_QUERY = "select new map(hp.col1, hp.col2) from HP hp where hp.col1 in (:id)";
test = getSession().createQuery(HQL_QUERY).setParameter("id", id).list();
}catch(Exception e){
}
不知道我在哪里犯錯
請幫忙
hp.col1
或hp.col1
返回java.util.ArrayList
,它應該為Long
。 在實體類中更改其類型。
要么
更改測試類型: List<Map<List, Long>> test = new ArrayList<Map<List, Long>>();
HQL像這樣工作:
List<MyObject> test = new ArrayList<>();
try {
String HQL_QUERY = "select new map(hp.col1, hp.col2) from HP hp where hp.col1 in (:id)";
test = getSession().createQuery(HQL_QUERY).setParameter("id", id).getResultlist();
}
因此,您應該更改屬性的類型,然后再進行一些代碼以將列表轉換為地圖
我犯了一個錯誤
而不是參數,我需要使用parameterlist。
這是代碼:
List<Map<Long, Long>> test = new ArrayList<Map<Long, Long>>();
try {
String HQL_QUERY = "select new map(hp.col1, hp.col2) from HP hp where hp.col1 in (:id)";
test = getSession().createQuery(HQL_QUERY).setParameter("id", id).list();
}catch(Exception e){
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.