Hallo an Alle,
ich habe eine Herausforderung bezüglich einer Datenbankabfrage. Ich habe zwei Tabellen in meiner
DB.
Cal zeigt die Tage eines Kalenders an
Schichtplan beinhaltet die Schichten eines Arbeiters an einem Tag. Die Tabellen stehen somit in einer 1 zu n Beziehung. Ein Tag kann für einen Arbeiter mehrere Schichten beinhalten.
Ich möchte nun eine Abfrage formulieren (Hibernate
Query), die mir alle Tage für einen Arbeiter liefert, an dem mindestens eine Schicht geplant ist. Mein Ansatz:
SQL-Code:
select
cal
from
Cal cal
left join
cal.schichtplan
where
size(cal.schichtplan) > '0'
Das funktioniert so weit. Nur werden durch den join bei 3 Schichten an einem Tag auch 3 identische Tage zurückgeliefert. Wie kann ich erreichen, dass ich jeden Tag nur einmal erhalte? Zwingende Bedingung ist, das ich "select cal" benutze, damit ich durch hibernate auch ein kompletes Objekt bauen kann.
Kann jemand helfen?
Gruß,
Barnti