Es seien zwei Tabellen „Angestellter(Personalnummer,Name,Abteilungsnummer)“ und „Abteilung(Abteilungsnummer, Bezeichnung)“. Es besteht eine 1:n-Beziehung und der Eintrag „Abteilungsnummer“ verbindet die beiden Tabellen.
Objektorientiert wäre das in Pseudocode:
Und
Um diese Tabellen in die Klassen zu überführen würde ich :
1. Einlesen der Tabelle Angestellte in eine Liste AngestelltenListe
2. Einlesen der Tabelle Abteilung in eine Liste Abteilungsliste
3. Herstellung der Verknüpfung
Das Einlesen der Tabellen aus dem Resultset ist ja einfach:
Danach habe ich also zwei Listenobjekte von Objekten , wobei Abteilungen ja weniger Objekte als Angestellte hat. Daraus würde ich als Pseudecode schreiben:
Mir stellt sich nun die Frage, wie man das mit JPQL vereinfachen kann.
Objektorientiert wäre das in Pseudocode:
Java:
class Angestellter {
private int Personalnummer;
private String Name;
private int Abteilungsnummer“
//Kontruktor
//Gebe und Hole-Methoden
}
Und
Java:
class Abteilung {
private int Abteilungsnummer;
private string Abteilungsname;
private List<Angestellter> Mitarbeiterliste;
//Konstruktor
//gebe und Hole-Methoden
}
Um diese Tabellen in die Klassen zu überführen würde ich :
1. Einlesen der Tabelle Angestellte in eine Liste AngestelltenListe
2. Einlesen der Tabelle Abteilung in eine Liste Abteilungsliste
3. Herstellung der Verknüpfung
Das Einlesen der Tabellen aus dem Resultset ist ja einfach:
Code:
(Pseudeocode)
…
List Angestelltenliste =new List();
…
while(Datensatz im Resultset) {
Angestellter A = new Angestellter();
//Fülle Objekt A mit eingelesenen Eigenschaften.
Angestelltenliste.add(A);
}
Danach habe ich also zwei Listenobjekte von Objekten , wobei Abteilungen ja weniger Objekte als Angestellte hat. Daraus würde ich als Pseudecode schreiben:
Code:
Angestellter ang;
while(Abteilung abt = Abteilungsliste.getNext()) {
while(ang=Angestellter.getNext()) {
if(ang.Abteilungsnummer == abt.Abteilungsnummer) {
abt.Mitarbeiterliste.add(ang);
}
Ang = Angestelltenliste.getTop(); //Zurücksetzen auf Listenanfang
}
}
Mir stellt sich nun die Frage, wie man das mit JPQL vereinfachen kann.
Zuletzt bearbeitet von einem Moderator: