Hallo,
ich möchte SQL-ResultSets verschachteln.
konkret schaut das so aus:
ich habe eine Tabelle Berechtigungen der Form:
Mitarbeiter: Rolle
----------------------
Mitarbeiter1: Rolle1
Mitarbeiter1: Rolle3
Mitarbeiter2: Rolle1;
Mitarbeiter2: Rolle3;
Mitarbeiter2: Rolle4;
Mitarbeiter2: Rolle5;
Mitarbeiter2: Rolle7;
Ziel ist, eine HashMap<String, LinkedList> zu erhalten:
Mitarbeiter1 -> [Rolle1, Rolle3]
Mitarbeiter2 -> [Rolle1, Rolle3, Rolle4, Rolle5, Rolle7]
also hab ich einfach sowas geschrieben:
so ... mein Problem der ganzen Sache ist, dass sich die ResultSets irgendwie "in die Quere zu kommen scheinen" ...
sobald ich r2 initialisiere gibt es kein r1.next() mehr.
woran kann das liegen?
kann man resultsets nicht verschachteln?
wie könnte man dieses Problem sonst lösen?
lg, guni
ich möchte SQL-ResultSets verschachteln.
konkret schaut das so aus:
ich habe eine Tabelle Berechtigungen der Form:
Mitarbeiter: Rolle
----------------------
Mitarbeiter1: Rolle1
Mitarbeiter1: Rolle3
Mitarbeiter2: Rolle1;
Mitarbeiter2: Rolle3;
Mitarbeiter2: Rolle4;
Mitarbeiter2: Rolle5;
Mitarbeiter2: Rolle7;
Ziel ist, eine HashMap<String, LinkedList> zu erhalten:
Mitarbeiter1 -> [Rolle1, Rolle3]
Mitarbeiter2 -> [Rolle1, Rolle3, Rolle4, Rolle5, Rolle7]
also hab ich einfach sowas geschrieben:
Code:
ResultSet r1 = executeQuery("SELECT mitarbeiter FROM berechtigungen GROUP BY mitarbeiter");
while (r1.next()) {
name = r1.getString("mitarbeiter");
ResultSet r2 = executeQuery("SELECT rolle FROM berechtigungen WHERE mitarbeiter = '"+name+"'");
while(r2.next()){
linkedList.add(r2.getString("rolle"));
}
hashMap.put(name,linkedList);
}
so ... mein Problem der ganzen Sache ist, dass sich die ResultSets irgendwie "in die Quere zu kommen scheinen" ...
sobald ich r2 initialisiere gibt es kein r1.next() mehr.
woran kann das liegen?
kann man resultsets nicht verschachteln?
wie könnte man dieses Problem sonst lösen?
lg, guni