簡體   English   中英

從休眠狀態返回地圖

[英]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.col1hp.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM