0
我在Java程序中有一個非常奇怪的行爲。我有很長很長的HashMap,從方法檢索,但是當我試圖從它那裏得到的信息,此HashMap是一個字符串,字符串沒有任何錯誤,也沒有警告..下面我的代碼:奇怪的錯誤Java Hashmap類型長,字符串
List<HashMap<Long, Long>> getAggregateResult(String idCheptel, Integer limit) {
StringBuilder hql = new StringBuilder();
hql.append("select new map(t.prod.id, count(t.prod.id))");
... //rest of implem.
return entityManager.createQuery(hql.toString()).setMaxResults(limit).getResultList();
}
呼叫功能
... //in other method try to retrieve the information
for (HashMap<Long, Long> map : getAggregateResultVetProduct(idCheptel, limit)) {
System.out.println(">>>>>>>" + map.get(0L)); //always null
//the map is asked in Long, but in debugger it's a String, String
for (Map.Entry<Long, Long> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey()); //here key are 0
System.out.println("Value: " + entry.getValue());
}
}
的如果有人可以給我一些信息,爲什麼會出現這種行爲。謝謝。
編輯
這裏的一些信息: 我使用的IntelliJ。在調試器的屏幕截圖下方,因爲它被問到。
你能顯示你引用的調試器輸出或屏幕截圖嗎? –
getAggregateResultVetProduct的做法是什麼? – mvera
我猜也是entityManager.createQuery不返回一個HashMap。 – mvera