Ergebnistyp HQL-Query

LadyMilka

Aktives Mitglied
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:
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;
    }
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:
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;
    }
Die Fehlermeldung, die bei "map.put(...)" auftaucht, lautet:
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:
S

SlaterB

Gast
Thema erstellt in 'Allgemeines EE', obwohl es nicht wirklich was mit EE zu tun hat,
Titel 'List zu TreeMap casten' was du nicht machst, was gar nicht geht und auch nicht das Problem ist,

man oh meter ;)
Thema umbenannt, verschoben

---

dein Problem ist doch überhaupt nicht die Umwandlung,
du stellst eine DB-Anfrage und vermutest dass als Ergebnis eine Liste von CounterWert-Objekten kommt,
nur weil du deine Liste so deklarierst ist das nicht so, im Quellcode kann Java dir nicht vorher bestätigen oder anmerken, was bei der HQL-DB-Anfrage so rauskommen wird,
die Exception zur Laufzeit zeigt, dass du falsch lagst,

> SELECT my_date_format(time, '%Y-%m-%d'), counter
liefert als Ergebnis eine Liste von Object[2], erster Wert ein String, zweiter Wert ein CounterWert-Objekt,
List<Object[]> statt List<CounterWert> wäre angebracht, oder die Query umstellen
 

LadyMilka

Aktives Mitglied
Danke fürs verschieben, irgendwann bekomm ich das mit der Einordnung und dem Titel noch richtig hin ;)

Und es ist mir ja fast schon peinlich, aber es hat geklappt.

meine DAO-Methode liefert jetzt List<Object[]> und meine verarbeintende Methode mußt ich dann auch noch etwas anpassen:
Java:
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++) {
            Object[] oneDTO=allDTOs.get(i);
            map.put(oneDTO[0].toString(), oneDTO[1]);
            System.out.println(oneDTO[0].toString()+" "+oneDTO[1]);
        }
        map = this.calculateEnergyValues(map);        
        return map;
    }

Langsam bin ich aber echt genervt von Hibernate, vielleicht denk ich auch einfach immer nur in die falsche Richtung..
 

LadyMilka

Aktives Mitglied
Ums vollständig zu machen, ich iteriere jetzt über meine List<Object[]> und die einzelnen Werte der Treemap hinzuzufügen.
Java:
for(Iterator<Object[]> iterator=allDTOs.iterator(); iterator.hasNext();){
    Object[] wert = iterator.next();
    tmap.put(wert[0], wert[1]);
}
Sieht besser aus und ich muß die einzelnen Werte nicht in String oder int umwandeln.

Die Variante hier drüber, hat immer nur die Objekt-Adresse geliefert..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna PostgreSQL-Query in eine MicrosoftSQL-Query konvertieren - chatGPT hilft nur bedingt. Datenbankprogrammierung 3
L JPA EclipseLink PostgreSQL auslesen mit Query Datenbankprogrammierung 2
T TRIM in Query Datenbankprogrammierung 3
D sql query in methode mit rückgabetyp Datenbankprogrammierung 14
OnDemand Mysql Query Builder Datenbankprogrammierung 1
P Herausfinden wann Query null zurück gibt? Datenbankprogrammierung 1
OnDemand SQL Query Optimierung Datenbankprogrammierung 28
Kirby.exe Verwirrung beim Query Datenbankprogrammierung 4
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Oracle Query umbauen (sind die Querys gleich?) Datenbankprogrammierung 5
B Frage bei einer SQL Query Datenbankprogrammierung 3
C Fehlerhafte SQL Query Datenbankprogrammierung 4
B MySQL Query (Anfängerfrage :D) Datenbankprogrammierung 3
B JPA / HQL Support bei Query - Distanzberechnung Datenbankprogrammierung 0
D JPQL- Query über mehrere Tabellen Datenbankprogrammierung 7
Thallius MySQL Was ist falsch an dem Query? Datenbankprogrammierung 2
Thallius MySQL Wo ist der Fehler in dem Query? Datenbankprogrammierung 2
OnDemand MySQL SQL Query Datenbankprogrammierung 2
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
B Leerzeichen nach Umlaut -> Sichtbar erst nach Query! Datenbankprogrammierung 6
S sql query, um bestimten datensatz zu finden Datenbankprogrammierung 33
OnDemand SQL Query Anzahl der Werte Datenbankprogrammierung 8
H MySQL Anderer Query-Ansatz? Datenbankprogrammierung 4
P Tricky SQL Query Datenbankprogrammierung 3
P SQL Query Problem Datenbankprogrammierung 14
I Nullpointer bei einfacher Daba query Datenbankprogrammierung 12
I Query für Geburtstage Datenbankprogrammierung 6
S MYSQL: "Packet for query is too large" Datenbankprogrammierung 0
S HSQLDB PrepareStatement- Falsche query Datenbankprogrammierung 2
F Oracle The parameter name [...] in the query's selection criteria does not match any parameter name d Datenbankprogrammierung 2
J Fehler bei mySQL Query Datenbankprogrammierung 19
R MySQL berechnete Spalte im selben query weiterverwenden? Datenbankprogrammierung 4
S MySQL Hochkommata in Query Datenbankprogrammierung 7
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
T HQL Query funktioniert nicht? Datenbankprogrammierung 8
M PostgreSQL Hibernate Query Restriction Datenbankprogrammierung 2
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
algebraiker Eclipse RCP - no persistent classes found for query class Datenbankprogrammierung 4
M List aus Hibernate Query Datenbankprogrammierung 5
M JPA-Query - nicht das komplette Objekt Datenbankprogrammierung 4
M Problem mit Hibernate und Named Query Datenbankprogrammierung 1
S DB2 Eclipselink Query Datenbankprogrammierung 2
M Frage zu folgender Query in EJB-QL Datenbankprogrammierung 4
Eldorado MySQL HQL Query Tag von Date Datenbankprogrammierung 6
H DB auslesen (Hibernate, Query, Parameter) Datenbankprogrammierung 8
C Split String für SQl query Datenbankprogrammierung 10
C setSelectedValue in SQL Query übergeben Datenbankprogrammierung 20
D Hibernate: Query verarbeiten Datenbankprogrammierung 11
B Hibernate, einfaches Query Ausgeben Datenbankprogrammierung 4
X Select Query auf Substring Datenbankprogrammierung 2
L Query grafisch erzeugen Datenbankprogrammierung 6
N SQL Query Browser Error Datenbankprogrammierung 6
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
Chtonian Effizientes Query System für Wortnachschlagewerk Datenbankprogrammierung 9
D Hibernate, Criteria Query Datenbankprogrammierung 2
T JPQL Query für eine Tabellenansicht Datenbankprogrammierung 2
G JPQL L*KE / JPA Query Language Datenbankprogrammierung 9
O SQL-Query bringt Fehler Datenbankprogrammierung 4
D kurze Frage zu einem Query Datenbankprogrammierung 6
S Query aus Querys Datenbankprogrammierung 14
P [Hibernate] Criterion-Query in HQL übersetzen Datenbankprogrammierung 10
D Neuer Query wird nicht erkannt Datenbankprogrammierung 10
E Wie koennte die SQL Query aussehen? Datenbankprogrammierung 13
B mysql query ausführen Datenbankprogrammierung 4
N Fehler beim matchen von Strings via Query Datenbankprogrammierung 2
G How to put SQL query result into a file Datenbankprogrammierung 3
B Ein Query mit Mysql erzeugen Datenbankprogrammierung 6
G Hilfe bei Query für Spaltenansicht. Datenbankprogrammierung 20
A Fehler bei query Datenbankprogrammierung 7
G SQL-Query Methode Datenbankprogrammierung 4

Ähnliche Java Themen


Oben