-->
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: Subklassen eines Interfaces persistent machen.
PostPosted: Thu Jun 08, 2006 8:13 pm 
Newbie

Joined: Thu Jun 08, 2006 5:36 pm
Posts: 7
Hallo,

ich habe ein Problem mit einem Interface.

Code:
public interface Aufenthaltsort {
   public String getBezeichnung();
   ...
}

public class Haus implements Aufenthaltsort {
   ...
}

public class Auto implements Aufenthaltsort {
   ...
}

public class Schule implements Aufenthaltsort {
   ...
}

public class Person {
   private Aufenthaltsort ao;
   ...
}


Wie kriege ich es hin, dass die drei Klassen, die das Interface implementieren , als Attribut der Klasse Person korrekt persistent gemacht werden? (Java 1.4, Hibernate 3.1, XDoclet 1.2.3)

Bin für jede Hilfe dankebar!

mfg
phoku


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 10, 2006 4:15 am 
Newbie

Joined: Thu Feb 16, 2006 2:05 pm
Posts: 10
Location: Nürnberg, Germany
Ich denke, so etwas müsste sich mit einer Vererbungsstrategie abbilden lassen. Eine Möglichkeit wäre die in Kapitel 9.1.5 der Referenz-Doku beschriebene Variante "table per concrete class".

Würde in der XML-Mapping-Datei dann etwa so aussehen:

Code:
<class name="Aufenthaltsort">
...
<union-subclass name="Haus" table="HAUS">
...
</union-subclass>
<union-subclass name="Auto" table="AUTO">
...
</union-subclass>
<union-subclass name="Schule" table="SCHULE">
...
</union-subclass>
</class>


Wenn es Dir darum gehen sollte, die Property bezeichnung in allen drei Implementierungsklassen zu verwenden, würde ich Dir empfehlen, aus Aufenthaltsort eine abstrakte Klasse zu machen:

Code:
public abstract class Aufenthaltsort {

   private String bezeichnung;

   public String getBezeichnung() {
      return bezeichnung;
   }
   ...
}

_________________
Please rate this post, if it helped you.


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.