Hallo,
ich hab 3 Tabellen mit jeweils dazugehörigen Klassen:
TBLFILE_Main -> FileMain
TBLFILE_SUB -> FileSub
TBLDOKTYP -> DokTyp
TBLFILE_MAIN ist meine "Mastertabelle", sie enthält ein Feld "NUMMER" als PK.
Die TBLFILE_SUB enthält einen Foreign-Key auf dieses NUMMER-Feld, es ist also eine 1:n-Beziehung. Die TBLFILE_SUB enthält ausserdem ein integer-Feld "HAUPTDATEI" ( 0 = null = false / -1 = true ).
TBLFILE_SUB KANN einen Wert in der Spalte "DOKTYP" enthalten, as ForeingKey auf TBLDOKTYP.
Diese 3 Klassen würd ich gern auf EINE Klasse "LayoutObject" mappen, wobei die 3 Tabellen/Klassen nicht als Klassen-Member sondern deren Properties direkt gemappt werden sollen, also etwa so:
Code:
public class LayoutObject {
protected int number;
protected String doktyp_key;
protected String filemain_column_1_value;
protected String filemain_column_2_value;
protected String filesub_column_1_value;
protected String filesub_column_2_value;
protected String doktyp_column_1_value;
protected String doktyp_column_2_value;
// ... Setter & Getter ... //
}
Da jedoch mehrere FileSub's für eine NUMBER existieren, soll entweder die FileSub-Zeile mit der Spalte "HAUPTDATEI" = -1 ausgewählt werden oder die Werte für FileSub leer bleiben (Outer Join), was acuh heisst dass dann die Werte für DokTyp leer bleiben müssen (Es besteht ja nur eine indirekte Beziehung TBLFILE_MAIN.number -> TBLFILE_SUB.number -> TBLDOKTYP).
Hintergrund ist dass nach ALLEN Spaltenwerten sortieren werden kann.
Wie könnte so ein Mapping aussehen (fällt mir immer etwas schwer) ?
Ich will keine SQL-Query definieren, da sonst alle "Hibernate-Features" (Restrictions, Order etc) flöten gehen...
Vielen Dank im Vorraus und ich hoffe ich hab mich nicht zu kompliziert ausgedrückt ;)