-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: Mehrere Joins mit einer JoinTable aufgrund eindeutiger IDs?
PostPosted: Wed Oct 01, 2008 6:17 am 
Regular
Regular

Joined: Fri Feb 09, 2007 3:47 pm
Posts: 56
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!


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 11, 2009 3:30 am 
Beginner
Beginner

Joined: Wed Jan 16, 2008 4:00 am
Posts: 41
Wenn deine Software, Hardware und Lizenz Klasse ein und das selbe interface implementieren, bzw. von ein und derselben superklasse ableiten kannst du mit einer criteria query in allen dreien autom. suchen:

sess.createCriteria(superclass.class)
.Add(Expression.Eq("Id", providedId);

eventuell noch einen proxy in den mapping files einstellen - war bei mir aber nicht notwendig

eventuell hilft dir das hier auch weiter:
http://www.hibernate.org/hib_docs/refer ... tance.html


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.