Hallo,
ich habe eine Frage zum Mappen eines bestimmten Konstrukts.
Hier mein Datenmodel:
Code:
NUMMERIERUNG [0..*]-----------[0..*] SOFTWARE
NUMMERIERUNG [0..*]-----------[0..*] HARDWARE
NUMMERIERUNG [0..*]-----------[0..*] LIZENZEN
Java-Code:
Code:
in Nummerierung.java:
Collection<Vaterklasse> softwares;
Collection<Vaterklasse> hardwares;
Collection<Vaterklasse> lizenzen;
in Software.java/Hardware.java/Lizenz.java:
Collection<Vaterklasse> nummern;
NUMMERIERUNG hat also eine n:m Beziehung zu SOFTWARE, eine n:m Beziehung zu HARDWARE und eine n:m Beziehung zu LIZENZEN. Alle 4 Klassen sind von der selben Vaterklasse abgeleitet und haben global eindeutige IDs!
Jetzt meine Frage:
Durch die eindeutigen IDs müsste es doch möglich sein, dass Hibernate erkennt, ob ein Objekt das eine Referenz zu NUMMERIERUNG hat ein SOFTWARE, HARDWARE oder LIZENZ-Objekt ist und es in die entsprechende Collection laden. So, dass nur eine Join-Tabelle mit den Spalten NUMMERIERUNG_ID und VATERKLASSE_ID benötigt wird und dann entsprechend gejoint wird.
Wie kann ich das mit Hibernate Annotations realisieren?
Oder mappt man das sinnvollerweise ganz anders? Ist es sinnvoller 2 Join-Tabellen anzulegen?
Vielen, vielen Dank für jede Hilfe!