-->
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.  [ 1 post ] 
Author Message
 Post subject: Inheritance Mapping mit m:n-Relationen
PostPosted: Wed Feb 15, 2006 5:46 am 
Newbie

Joined: Wed Feb 15, 2006 5:07 am
Posts: 1
Hallo,

ich habe mir die Hibernate-Referenz und einige Beiträge in verschiedenen Foren durchgelesen, werde aber aus diesem Thema noch nicht ganz schlau...

Beispiel:
Die zwei Klassen B und C sind von A abgeleitet. Die Strategie table-per-subclass using a discriminator gibt das Datenmodell vor:
Code:
tbl_A   tbl_B   tbl_C
ID       ID       ID
A1       B1       C1
A2     
disc   


Im Feld 'disc' steht, je nach Klasse 'A', 'B' oder 'C'. Das mapping sieht dann etwa so aus:
Code:
<class name="A" table="tbl_A" discriminator-value="A">
  <id name="id" column="ID"  />
  <discriminator column="disc" />
  <property name="prop1" column="A1"/>
  <property name="prop2" column="A2"/>
  <subclass name="B" discriminator-value="B">
    <join table="B">
       <key column="ID" />
       <property name="prop3" column="B1" />
    </join>
  </subclass>
  <!-- Für C so wie bei B ... -->
</class>


Ich hoffe bis hierher ist mein Ansatz richtig, und mein Problem kommt wirklich erst jetzt:

Zwischen einer Klasse X und den Klassen A, B, C gibt es eine n:m Relation. Im Datenbankmodell würde ich deshalb eine Tabelle X_zu_A erstellen, leider brauche ich hier zusätzlich noch ein zusätzliches Feld für die Ordnung.

Mein Ansatz für das Mapping war der, dass ich eine Klasse für die Relation X_zu_A implementiere und mittels many-to-one eine Verknüpfung zur Klasse X sowie zu A (Basisklasse von B und C) herstelle.

Wie kann ich aber die weiteren Attribute von B oder C verwenden? Muss ich für jede abgeleitete Klasse wieder eine Klasse für die Relation implementieren? Mein Ziel wäre es, dass ein Objekt der Klasse X die Methoden getAs(), getBs() und getCs() zur Verfügung stellt...

Für jeden Input dankbar,
peda


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

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.