Hallo,
bin ich hier richtig? Würde auch zu allgemeine Java-Themen passen.
Ich arbeite mit dem HibernateTemplate von Spring um Daten aus der DB abzufragen. Diese liefert mir eine Liste von Objekten, richtig?
meine Abfrage-Methode:
Nun brauch ich aber diese Liste in einer Methode die TreeMap zurückgibt. Ich habe keine Möglichkeit diese methoden zuändern, da sonst ein späterer Vergleich nicht mehr aussagekräftig genug ist.
meine verarbeitende Methode:
Die Fehlermeldung, die bei "map.put(...)" auftaucht, lautet:
Wo kommt denn jetzt das Object her? Ich arbeite doch mit einer List<CounterWert>, zumindest ist jede Liste zu deklariert.
Vielleicht kann mir ja jemand auf die Sprünge helfen, ich weiß einfach nicht mehr weiter.
bin ich hier richtig? Würde auch zu allgemeine Java-Themen passen.
Ich arbeite mit dem HibernateTemplate von Spring um Daten aus der DB abzufragen. Diese liefert mir eine Liste von Objekten, richtig?
meine Abfrage-Methode:
Java:
public List<CounterWert> list1;
public List<CounterWert> list2;
[...]
public List<CounterWert> getMonth(Date zeit){
getHibernateTemplate().setMaxResults(0);
list1 = getHibernateTemplate().findByNamedParam(
"SELECT my_date_format(time, '%Y-%m-%d') , counter "
+ "FROM CounterWert WHERE time>= :zeit AND "
+ "time<=my_date_add(:zeit, my_day(my_last_day(:zeit)), DAY) "
+ "GROUP BY time"
, "zeit", zeit);
getHibernateTemplate().setMaxResults(1);
list2 = getHibernateTemplate().findByNamedParam(
"SELECT my_date_format(time, '%Y-%m-%d'), counter "
+ "FROM CounterWert WHERE time>= :zeit AND "
+ "time<=my_date_add(:zeit, my_day(my_last_day(:zeit))+1, DAY) "
+ "ORDER BY time DESC", "zeit", zeit);
list1.addAll(list2);
System.out.println("Anzahl der Datensätze: "+list1.size());
return list1;
}
meine verarbeitende Methode:
Java:
private List<CounterWert> allDTOs;
[...]
public TreeMap<String, Integer> readTimeAndValues(Date datum) {
TreeMap map = new TreeMap<String, Integer>();
allDTOs=energyDao.getMonth(datum);
for (int i = 0; i < allDTOs.size(); i++) {
map.put(allDTOs.get(i).getTime().toString(), allDTOs.get(i).getCounter());
}
map = this.calculateEnergyValues(map);
return map;
}
Code:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to db.CounterWert
Wo kommt denn jetzt das Object her? Ich arbeite doch mit einer List<CounterWert>, zumindest ist jede Liste zu deklariert.
Vielleicht kann mir ja jemand auf die Sprünge helfen, ich weiß einfach nicht mehr weiter.
Zuletzt bearbeitet von einem Moderator: