-->
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.  [ 3 posts ] 
Author Message
 Post subject: Vererbung mit Discriminator-Spalte
PostPosted: Tue Aug 08, 2006 4:51 am 
Newbie

Joined: Thu Aug 03, 2006 4:45 am
Posts: 5
Hallo,
ich habe die Klassen:

TaskType (Basisklasse),
OtherTask (erbt von TaskType),
FtpChangesTask (erbt von TaskType) und
FtpCompleteTask (erbt vonTaskType)

Die abgeleiteten Klassen implementieren alle dasselbe Interface und unterscheiden sich nur durch ihre Implementation.
Ich wollte deshalb die beiden Datenelemente (TaskTypeNo und BranchNo)
in die Basisklasse integrieren da die 3 abgeleiteten Klassen sie benutzen.

Meine Mapping Datei:
Code:
<hibernate-mapping>
  <class name="TaskType" table="TaskType">

   <!-- Primärschlüssel -->
   <id name="taskTypeId" type="long">
     <column name="TaskTypeId" />
     <generator class="identity" />
   </id>   
   
   <!-- Diskriminator Spalte -->
   <discriminator column="TaskTypeDiscriminator" type="string">
   </discriminator>
       
   <!--  Abgeleitete Klassen -->       
   <subclass name="OtherTask" discriminator-value="OtherTask" />
   <subclass name="FtpChangesTask" discriminator-value="FtpChangesTask" />
   <subclass name="FtpCompleteTask" discriminator-value="FtpCompleteTask" />
       
   <!-- Datenelemente -->
   <property name="taskTypeNo" type="int">
     <column name="TaskTypeNo" not-null="true" />
   </property>
   <property name="branchNo" type="int">
     <column name="BranchNo" not-null="true" />
   </property>
   
  </class>
</hibernate-mapping>


Die zugehörigen Java Klassen stimmen soweit überein;
wenn ich aber das Programm starten möchte bekomm ich von Log4J eine Fehlermeldung:
Code:
INFO  - Reading mappings from resource: model/tasktypes/TaskType.hbm.xml
ERROR - Error parsing XML: XML InputStream(31) The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)".


Wenn ich die beiden property-mappings weglasse tuts einwandfrei.

Bin für jeden Hinweis oder Hilfe dankbar!!!
Gruß
Matze


Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 08, 2006 5:04 am 
Regular
Regular

Joined: Mon Mar 06, 2006 6:18 am
Posts: 95
Location: Bern, Switzerland
und wenn du die properties definitionen vor den subclass definitionen einfügst und nicht danach? evtl. funktioniert es so?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 08, 2006 5:16 am 
Newbie

Joined: Thu Aug 03, 2006 4:45 am
Posts: 5
Hallo,

du hast Recht,
die properties darf ich nicht am Schluss mappen und auch nicht vor dem discriminator-value.

Meine Reihenfolge ist jetzt folgende:
Primärschlüssel - Discriminator Value - Properties - Subclasses

(Dann wird es dem SAX Parser wohl nicht egal sein wann welches Element kommt.)

So gehts jetzt auf jeden Fall...


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 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.